Dry fry/dry roast the cumin and coriander seeds separately in a small frying pan over low heat until aromatic, 1-2 minutes.
1 Tbsp cumin seeds, 1 Tbsp coriander seeds
Let them cool, then grind into a fine powder in a spice mill or coffee mill.
Heat the oil in a large pan on medium high heat and fry the onions for a couple of minutes.
2 Tbsp ghee or vegetable oil, 1 medium onion
Add the garlic, ginger, cinnamon, cardamom, bay leaves, coriander, cumin, turmeric and half the garam masala. Stir thoroughly for 30 seconds.
3 garlic cloves, 5 cm ginger, 1 small cinnamon stick, 2 cardamom pods, ½ tsp turmeric powder, 2 bay leaves, 1 Tbsp garam masala
Add the tomatoes, tomato puree, chillies and water, stir and bring to boil.
2 green chillies, 2 medium tomatoes, 250 ml water, 1 Tbsp tomato puree
Add the lamb, bring back to boil, cover and simmer for 1 and a half hours.
1 kg leg of lamb
Add the potatoes and salt, stir, bring back to boil, cover and simmer for another 30 minutes or so until the potatoes are done. If you'd like more gravy, add more water.
4 large potatoes, 1 tsp salt
Stir the curry a few times during this final cooking stage, especially if you prefer it dry, to stop the bottom from catching.
When the potatoes are done, turn the heat off, sprinkle the rest of the garam masala all over and some chopped fresh coriander if you wish.