In a large dutch oven (I use my 4qt), add the mustard oil. Place on a medium flame and let heat up.
Once the oil is warm (not hot), add the whole spices and saute for 10 seconds stirring continuously. Take care that the spices don't burn. Cloves and black pepperorns sometimes pop in hot oil so please be careful.
Add the chopped onions next. On low medium heat, for the next 8-10 minutes, cook the onion till they become golden brown (image 5). Browning the onions is one of the key steps in making any indian curry, please dont rush this process. Second tip is to avoid stirring the onions constantly while they brown. If you do so, instead of browning, the onions will become sweaty and start steaming. Steamy, sticky onions = less flavor!
Once the onions have browned, add 2-3 tablespoons of water and immediately add the marinated lamb. Adding water avoids the lamb from sticking. Sprinkle all the ground spices (except garam masala) over the meat. Keep the stove on low medium and mix well.
For the next 7-10 minutes, keep stirring the lamb. You will not see any liquid at this stage (image 7)and its perfectly fine to get tempted to add water. But don't!
In about 12-14 minutes, as the lamb meat starts warming up, it will start releasing its juices.Along with it, the water from yogurt will also start getting released. Keep stirring.
In about 15-17 minutes, you will see liquid in the pot. This is what we want. We will now reduce the heat to low and cover the pot. Let the lamb cook for about 45 minutes to an hour or until its about 90% cooked. You will need to check 2-3 times and stir frequently to make sure that the contents are not drying out. Add ½ cup or more water if needed. This depends on quality, cut and kind of meat. I didn't add any water.
Open the lid and mix in the blended tomato and tomato paste. Cover and again let cook for 8-12 minutes
When you will uncover the lid,you will notice that the lamb is fork tender (though its not falling apart, we dont want that). You will also see thin layer of oil seperating on the top and sides of the pot.
Add the ground spinach, garam masala and kasuri methi. Give a gentle mix.
Without covering, let simmer for another 6-8 minutes to allow the flavors to meld together. At first, the spinach sauce will look dull, however, eventually after simmering, you will see thin layer of oil on top. Make sure that the meat is not overcooked or falling apart, it will spoil the texture of the dish. Adjust cooking times as needed until the meat is cooked to tender.
This is when your lamb saagwaala is ready! Finish with chopped cilantro if you wish.
Let rest for 20-25 minutes if possible for flavors to deepen. Serve warm.