Score the skin of the lamb with a sharp knife.
Toast the coriander and cumin seeds in a dry skillet until lightly browned then grind to a powder with a pestle and mortar.
Put the ground seeds, onion, almonds, garlic, ginger, chiles and salt into a food processor with 3 tbsp yoghurt and blend to make a paste.
Heat the oil in a skillet and gently fry the turmeric, cayenne and garam masala for 2 minutes.
Stir in the paste and add the rest of the yoghurt.
Rub the mixture all over the lamb, cover and marinade in the refrigerator for 24 hours.
Remove the meat from the refrigerator 1 hour before you want to cook it.
Heat the oven to 200ºC (180º fan), gas 6.
Transfer the lamb to a roasting pan and spread all the yoghurt marinade over it.
Tuck the cassia bark under the meat, cover with kitchen foil and roast for 1 hour.
Remove the foil, baste and cook a further 30 minutes.
Let the meat rest for 15 minutes before serving.