Bring water to a boil, lower in 6–8 eggs, and cook 9–10 minutes. Transfer to ice water, peel, and set aside.
Heat 2–3 tablespoons oil (or half oil/half ghee). Add 1 teaspoon cumin seeds, 1 bay leaf, and 2 cardamom pods. Let them sizzle for 30 seconds.
Add 2 medium finely chopped onions with a pinch of salt. Cook until deep golden, 10–12 minutes. Add 1 tablespoon grated ginger and 1 tablespoon grated garlic. Cook until the raw smell vanishes.
Sprinkle 1 teaspoon turmeric, 2 teaspoons coriander powder, 1 teaspoon cumin powder, and 1–2 teaspoons Kashmiri chili powder. Stir 30 seconds. If it looks dry, splash a tablespoon of water so nothing burns.
Add 2 cups grated fresh tomatoes or 1.5 cups crushed canned tomatoes. Cook down until the oil separates from the masala and the mix darkens, 8–10 minutes. Taste; add a pinch of sugar if needed.
Add 1 to 1.5 cups hot water for a medium-thick gravy. Salt to taste. Bring to a gentle simmer.
Score each egg lightly with a knife or prick a few times with a fork. Optional: shallow-fry the eggs in a teaspoon of oil with a sprinkle of turmeric and chili for 2 minutes for golden spots. Then slide them into the gravy.
Simmer 8–10 minutes so the eggs absorb flavor. Stir in 1 teaspoon garam masala and a knob of butter or a teaspoon of ghee if you feel fancy. Squeeze lemon. Garnish with chopped cilantro.