Mix all the remaining ingredients together to make the marinade, and smear it thickly over the lamb.
Place on a plate and cover, then leave to marinate in the refrigerator for a couple of hours.
Preheat the oven 180C/350F/Gas 4.
Put the lamb in a roasting tin and cover loosely with foil, ensuring that it doesn't touch the lamb. Cook for about two hours until the meat is tender, basting the lamb about halfway through with the juices from the pan.
Remove the foil and cook for 8-10 minutes more.
Take the meat out of the oven, cover loosely with foil and leave the rest in a warm place for about 15 minutes.
While the lamb is resting, make the seasoned yoghurt. Whip the yoghurt until it is creamy. Fold in the onion, tomato, green chilli, and salt.
Heat the oil in a small frying pan, then add the mustard seeds and curry leaves. Be careful as the mustard seeds will pop when heated. Fry for a few seconds, then add the peanuts, if using. Fry for a minute, making sure the mixture doesn't burn.
When the mixture has cooled, gently add it to the yoghurt. Serve chilled with the roasted lamb.
Make a gravy with the remaining juices from the roasting tin by stirring in 75-100ml/2½-3½fl oz boiling water and simmering over a medium heat for three minutes.
Carve the lamb and pour the spicy gravy over the meat.