Indian
Heat the oil or ghee in a heavy pot over medium-high heat and fry the cardamom and cinnamon for 1 minute until fragrant.
Brown the lamb in batches for 8-10 minutes in total, then lift it out onto a plate.
Lower the heat to medium, add the onions and cook for 10 minutes until deep golden, then stir in the garlic and ginger for 1 minute.
Add the chili powder, fennel, salt and tomato and cook for 5 minutes until the tomato softens.
Take the pot off the heat and stir in the yogurt a spoonful at a time so it does not curdle, then return the lamb and its juices and cook for 3 minutes.
Pour in 300 ml hot water, cover and simmer gently for 75 minutes, stirring now and then, until the lamb is tender.
Uncover, stir in the garam masala and simmer for 10 minutes to thicken the sauce, then garnish with cilantro and serve with rice or naan.