Choose a new cookbook worth up to £28 when you subscribe to our magazine.
Up to 2 days before the meal, tip all the spice paste ingredients into a mini chopper or small food processor with a splash of water and a pinch of salt. Blitz until smooth. Lightly score the lamb a few times on all sides and rub about a third of the paste all over. If you have time, cover the lamb and leave in the fridge for a few hours or overnight, and chill the remaining paste.
The day before you want to eat the lamb, heat oven to 160C/140C fan/gas 4. Heat 2 tbsp of the oil in a casserole or flameproof roasting tin that is big enough to fit the lamb snugly. Add the onions, cinnamon, cardamom and bay leaves to the hot oil and cook for 10 mins, stirring occasionally, until the onions are soft and starting to brown. Sprinkle over the sugar and splash in the vinegar, then sizzle for 1 min. Tip in the remaining curry paste and cook everything for 1 min until aromatic.
Add the tomatoes and cook for 1 min more, then stir in 200ml water and the yogurt. Season with salt and bring everything to a simmer. Nestle the lamb into the sauce and spoon over some of it. Cover the pan with a lid or tightly with foil and place in the oven for 3 hrs until the lamb is really tender. Leave the lamb to cool in the sauce, then lift it out and tip the sauce into a container – cover both and chill in the fridge overnight.
On the day you want to eat the lamb, heat oven to 200C/180C fan/gas 6. Put the lamb on a shallow roasting tin, brush with the remaining oil and roast in the oven for 40 mins until nicely browned. While the lamb is roasting, scoop off and throw away the solidified fat from the sauce, then tip the sauce into a saucepan and simmer for 10 mins until thickened, and season to taste. Blitz the sauce with a hand blender until reasonably smooth, then reheat in the pan. Serve the lamb on a board, with the sauce for spooning over, and the coriander, mint, chillies and chapatis on the side.