Hard Boil the eggs. While the eggs are boiling prepare the onion, tomatoes, ginger and garlic.
Peel the eggs, slit (but not all the way through) them using a sharp knife and rub with a generous pinch of turmeric powder & ¼ teaspoon salt. Let sit for 5 minutes.Note:-This step is optional, it helps in making eegs look a pretty yellow. You could also stir fry the eggs in a tablespoon of oil if you like slightly crisp skins. In a heavy bottomed pot, add the oil and heat on medium - high till you see faint ripples on the oil surface.If using mustard oil, you will need to heat it a little longer till to do away the raw smell.
Reduce heat to medium. Add the cardamom and cinnamon stick and let crackle for 10 seconds. Add the finely chopped onions next and cook them till golden brown. About 6-8 minutes.
Next, add the garlic & ginger and cumin seeds. Cook for 30 - 45 seconds till you start smelling a nice aroma. Add a splash of water to prevent the ginger garlic from burning.
Reduce the heat to low and next add with coriander, turmeric, red chili powders and salt. Toast the spices for few seconds and then add the tomatoes.
Start cooking the masala on low heat. The tomatoes with soften and you will see the oil separating on the sides of the pan. Takes about 8-10 minutes. In between, if you see masala sticking to the bottom of pan, add some water. This slow cooking is very important to develop flavors and color of the paste, do not rush. Allow the masala to reduce till it acquires beautiful reddish to brown color.
Add the turmeric rubbed eggs to the pot. Add ½ cup water.
Sprinkle the garam masala, amchoor and kasuri methi add more water (if you want a thinner gravy). If you add extra water, simmer for additional 3-5 minutes to allow for the flavors to mingle.
Put off the stove and let sit at least 20 minutes before serving.
Warm up a little, garnish with cilantro and enjoy!