Lower eggs into boiling water and cook 10 minutes. Transfer immediately to cold water for 5 minutes. Peel and make 2–3 shallow slits in each egg with a knife to help the curry absorb into the egg during simmering.
Toss peeled eggs with turmeric, chili powder, and a pinch of salt. Heat 1 tablespoon oil in a pan over medium heat. Fry eggs 3–4 minutes, turning gently, until the surface is golden and blistered. Remove and set aside.
In the same pan, heat 2 tablespoons oil over medium heat. Add diced onion and cook 10–12 minutes, stirring frequently, until deep golden-brown. Do not rush this step.
Add garlic and ginger and cook 2 minutes. Add tomato paste and cook 1 minute. Add pureed tomatoes and cook 5–6 minutes until broken down and oil separates at the edges.
Add cumin, coriander, turmeric, smoked paprika, chili powder, and salt. Stir and cook 2 minutes. Pour in water or broth and simmer 5 minutes until slightly thickened. Taste and add sugar if needed.
Nestle fried eggs into the gravy. Spoon sauce over each one. Partially cover and simmer on low for 8–10 minutes. Stir in cream or coconut milk in the last 2 minutes if using.
Scatter fresh cilantro on top. Taste and adjust seasoning. Serve over rice or with naan.