Heat the oil in a wok and brown the cubes of lamb on all sides. Brown in batches if necessary. Remove and keep aside.
Add the cardamom pods, bay leaves, cloves, peppercorns, and cinnamon stick to the oil and stir fry for about 30 seconds. Then add the chopped onions and stir fry for about 5 minutes. Add the ginger and garlic purees and stir fry for a further minute.
Add the ground coriander, cumin, paprika, chilli powder and salt. Stir fry for a minute.
Return the lamb cubes and any juices to the wok and stir fry for another minute.
Now add the yoghurt, one tablespoon at a time, stirring in each for about 30 seconds. Cook for a further 5 minutes.
Add about 275 ml tepid water, bring to the boil and then cover and simmer for about 1 hour, stirring occasionally.
Uncover and boil away some liquid to produce a thick sauce. Sprinkle over the garam masala and black pepper and serve immediately.