Place onions in a food processor. Add a little water to grind to a smooth paste. Set aside.
Spice mix:
Place fennel seeds and cumin seeds in a frying pan over low flame. Roast, stirring constantly, for a minute or until browned. Transfer the spices to a grinder, and grind to a fine powder.
Place ground spices in a bowl. Add ground turmeric, ground coriander, garam masala, paprika and red chili powder. Stir to combine.
Egg rogan josh:
Heat oil in a frying pan over medium-high heat. Add cloves and dried bay leaves. Stir fry for few seconds. Add onions. Sauté, stirring occasionally, for 3-4 minutes or until slightly browned.
Add ginger and garlic. Sauté, stirring occasionally, for 1 minute or until aromatic. Add spice mix. Stir fry for 1 minute. Add onion paste. Stir fry for 2 minutes.
Add tomato paste (purée) and chopped tomatoes. Season with salt. Sauté, stirring occasionally, for 2-3 minutes or until tomatoes start to break down.
Add yogurt and 1 cup water. Stir to combine. Bring to boil. Simmer for 6-8 minutes or until sauce thickens. Add eggs. Heat through. Add coriander (cilantro) leaves.