1. Put the lamb, ginger, 2 tsp garlic and the yogurt into a heavy pan and mix well. Put over a medium-low heat and bring to a simmer. When it begins to bubble, reduce the heat, cover and simmer for 35-40 minutes. Remove from the heat and transfer the meat into a bowl with a slotted spoon. Strain the stock into a measuring jug: make it up to 225ml/8fl oz by adding water if you don't have enough. You can refrigerate both meat and stock for up to two days.
2. Puree the onion in a blender or processor: adding 2-3 tbsps of water will make it easier to blend.
3. Heat the oil over a medium-low heat in a karahi, wok or other suitable pan. Peel back the top of each cardamom pod slightly to release flavour and fry gently with the cinnamon, cloves and bay leaves for 15-20 seconds.
4. Add the onion purée and the remaining ginger and garlic. Increase the heat to medium and fry, stirring frequently, until the onion juices have evaporated (8-9 minutes).
5. Add the tomatoes, stir and fry for a further 2-3 minutes, then add all the spices. Stir and cook for 2-3 minutes, add 50ml warm water and cook for a further minute or two.
6. Add the potatoes, salt and 300ml warm water. Let it all simmer gently, uncovered, for 10-12 minutes
7. Add the cooked meat and stock and simmer for 25-30 minutes, stirring frequently so that the thickened sauce does not stick to the bottom of the pan.
8. Stir in the coriander and mint, simmer for 1 minute, remove from the heat and serve with naan or plain boiled basmati rice and dhal.