Pre-heat the oven to 200°C
Dry roast all the spices in a non-stick pan until lightly browned, cool down and grind to a fine powder.
Put all the finely grated ingredients into a wide bowl, with yoghurt and salt to taste; mix the ingredients well and add the ground spice powder.
With a sharp knife, make incisions all over the leg of lamb. Rub the marinade into the meat, filling the gashes, and leave to one side for 2-4 hours or overnight. The longer the meat is allowed to marinate the more the flavours will infuse into the meat.
Place the joint into a greased roasting pan. In a separate pan fry the onions in the oil until golden brown, and then pour the contents of the pan over the leg of lamb.
Add the water to the roasting pan, cover with foil and put it in the pre-heated oven.
After 20 minutes reduce the oven temperature to 180°C and cook for around two hours.
Turn the joint over every 20 minutes and baste to keep the meat moist, until the joint is completely tender and cooked through. 45 minutes before the end of the cooking time remove the foil to brown the joint.
Alternatively you can slow cook the lamb with the foil on for around three hours at 150°C, this will braise the meat slowly.
Add the garnish ingredients to the roasting pan five minutes before the end of the cooking time. Let the meat rest, covered loosely with the foil, for 15 minutes before carving.
Serve with the garnish spooned over the meat.
Note: Papaya is used as a tenderizer in this recipe. If you can't find it, you could also use green mango or even pineapple instead.