If you plan to add roasted eggplant to the dish, roast it ahead of time. Preheat the oven to 400˚F, and slice the eggplant in half, lengthwise. Line a baking sheet with parchment paper, and place the eggplant halves face down on the parchment paper. Roast for 1 hour. Allow to cool, and remove the meat using the step-by-step instructions in this post. Set aside, and discard the skin. (This can be done a few days in advance.) If you're cooking your beans from a dried form, follow these directions for cooking them on the stove, the slow cooker or an electric pressure cooker. If you use the electric pressure cooker directions, add 15 minutes to the cook time for black chickpeas. Drain. (This can be done up to 1 week in advance.)
Warm the olive oil in a medium heavy-bottomed pot or large sauté pan over medium-high heat and add the onion. Cook until softened, about 10 minutes.
Prep Note: I used a mortar and pestle to grind the brown mustard seeds and cumin seeds. I then added whole, peeled garlic cloves, and mashed them. Next, I sliced the peppers in half, and mashed them into the mix. Last, I squeezed in the ginger paste. I then added it all to the sautéing onions. Grinding them like this amps up the flavors even more. If you don't want to take the time to do that, mince the garlic, ginger and peppers and add straight to the pan with the onions with the spices.
Whichever above prep method you use, sauté the garlic, ginger, peppers and spices with the onions over medium heat until everything begins to brown and caramelize - about 5 - 7 minutes. It will be very aromatic.
Add the tomato paste, garam masala and turmeric, and cook another 3 - 4 minutes until the paste thickens more. Add the tomatoes, roasted eggplant, cooked chickpeas and 3/4 cup water. Simmer for 30 minutes to meld the flavors.
Serve with slices of avocado, cilantro and sour cream if desired.