Heat oil in a large frying pan or skillet over medium-high heat.
Add cumin seeds, bay leaf and cardamom. Sauté, stirring, for a few seconds.
Add onions. Sauté, stirring occasionally, for 2-3 minutes or until browned.
Add garlic, ginger and green chilies. Sauté, stirring, for about 1 minute or until fragrant.
Add ground turmeric, ground cumin, ground coriander, red chili powder and garam masala. Sauté, stirring, for 1 minute or until aromatic.
Add tomato paste and chopped tomatoes. Stir to combine. Cook for about 3-4 minutes or until mushy.
Add coconut milk and water. Stir to combine. Season with salt.
Bring to a boil.
Simmer for 2 minutes.
Crack eggs into the sauce.
Add coriander (cilantro) leaves. Cook, covered, for about 6-7 minutes or until eggs are cooked to your liking.
Garnish with more coriander (cilantro) leaves and green chilies.
Serve warm with naan, paratha or steamed rice.