Prick eggplants and roast them over open flame or in a tandoor/preheated oven until the skin scorches and starts peeling off.
The sure shot way to check if the eggplants are done is to pierce them with the back of a spoon, if it enters the brinjal like soft butter then they are done.
When at room temperature remove the skin and mash the pulp.
Chop the onions, tomatoes and green chilli.
Heat oil(preferably mustard oil) in a kadahi(wok) and add chopped onions. Sauté until they are pink. Do not brown them.Then add chopped ginger, garlic, chopped green chilli and stir.
After about 1/2 a minute add the tomatoes and the salt(adding salt with the tomatoes softens the tomatoes faster and thus makes cooking easier)When the tomatoes are done(oil seperates from them)add all the powders except for the garam masala powder and cook for another 1/2 a minute.
Now add the mashed eggplant. After this point not much cooking is required. Cook for about 1/2 to 1 minute and finally add the garam masala and chopped cilantro.