Blend garlic, ginger, chilli powder and coriander powder with a bit of water. Season the lamb shanks with salt and marinate with the spice paste. Refrigerate for at least 4 hours or overnight if possible.
Bring the lamb shanks to room temperature before cooking.
In a heavy bottomed pan, heat oil and ghee. Coarsely crush the cinnamon, cardamom, cloves and peppercorns and add to the oil. Allow to sizzle on low heat for a few seconds before adding the sliced onions.
Sauté the onion till light brown and then add the slit chillies. Stir and continue to sauté till the onions turn dark brown. Next, add all the spice powders and the tomato puree. Sauté for another 2 minutes taking care that the spice mixture does not stick to the bottom.
Place the lamb shanks inside the pan along with the marinade. Cook for about 10 minutes turning sides once in a while and also taking care that the spice mixture does not burn.
Remove the pan from heat and add the yoghurt, a little at a time stirring into the spices to make a thick gravy. Place the pan back on heat and add 2 cups of water. Mix well and season with salt and bring to boil. Then cover the pan and simmer gently for 1 hour, stirring once or twice in between.
Add rosewater and grated nutmeg, stir through and cook uncovered for another 20 minutes or till the meat becomes really tender. The gravy will also thicken and develop a deep rich colour during this stage.
Finally, add lemon juice and garnish with coriander leaves.
Serve warm.