Heat the oil in a heavy bottomed pan; make sure you have a lid for it.
Add the whole spices and when they start to sizzle add the onions. Cook on a low heat until the onions are starting to brown.
Add the garlic and ginger to the pan and cook for a minute more.
If the oil has disappeared add a little more, you need the oil to cook the ground spices out.
Add the curry Masala or ground spices to the pan and continue to cook on a low heat for 45 seconds
Add the diluted tomato puree, stir in and cook for 30 seconds or so.
Add the meat and stir to seal all over
Add the tomatoes and salt, stir in and bring to a simmer. Turn the heat to the lowest you can (a heat diffuser on gas works a treat) and put the lid on. Leave to cook for around 30 minutes.
Take the lid off and stir. If it looks a little dry add a splash of water. Add the Garam Masala, kasoori methi and green chillies if you are using. Stir in and put the lid back on. Leave to cook for another 15 – 20 minutes.
After 15 – 20 minutes remove the lid and stir. If you like a thick sauce you may want to turn the heat up now and let it reduce down. If the sauce looks a little oily for your taste you can use a ladle to skim some of the oil off.
Once the sauce is at the consistency you require and the meat is soft and almost falling off the bone, check the seasoning and add up to another 1 tsp salt to taste.
Stir in the fresh coriander and serve over plain boiled rice with a chapatti or roti.