Add all the ground spices to a small bowl and mix them.
Marinate lamb with half of this spice mix, half of the ginger garlic, salt, kasuri methi and yogurt (or lemon juice/ vinegar). Cover and set aside for about 2 hours to overnight in the refrigerator.
Heat 1 to 2 tablespoon oil/ghee in a heavy bottom pan and add bay leaf, black cardamom, green cardamom & cinnamon.
Once the spices begin to sizzle, add the mint leaves and stir in the marinated lamb and braise on a medium heat for about 8 to 10 minutes.
Pour half of the hot water and mix well. Cover and let cook on a low to medium heat for 1 hour. Keep stirring every 15 mins and add more hot water as you cook.
How to make Lamb Curry
Meanwhile in another pan, heat the rest of the oil/ghee. Add the onions & green chilies. Saute on a medium heat for 6 to 7 mins.
Reduce the heat and stir fry for a few more minutes until deep golden but not burnt.
Add rest of the ginger garlic & saute until the raw smell of ginger garlic goes away. This takes 1 to 2 minutes.
Turn off the heat & stir in the rest of the ground spices, immediately pour the tomato puree. Cook on a medium heat until the raw flavor of tomatoes is gone.
Transfer this to the lamb after 1 hour of cooking lamb. Cook covered on a low heat until the meat is fully cooked and fork tender, for another 50 mins or more. Pour more hot water if required as you cook & keep stirring often, every 5 to 7 mins.
Taste test and add more salt or garam masala & kasuri methi if needed. If you want more heat in your lamb curry, add some freshly crushed black pepper.
Garnish lamb curry with coriander leaves and serve with roti/ naan/ rice or with any artisan bread.
Lamb curry tastes best after resting for a few hours or even the next day. Reheat & adjust the salt when you are ready to serve.