For the masala spice mixture, place all of the spice mixture ingredients into a food processor and blend until coarsely ground.
For the lamb, place the lamb into a deep roasting tray and spread the masala spice mixture all over. Drizzle with a bit of oil, then cover the tray with cling film and leave to marinate in the fridge for a couple of hours, ideally overnight.
Preheat the oven to 210C/410F/Gas 6. Remove the lamb from the fridge half an hour before cooking and remove the cling film.
Cook the lamb in the oven for 15 minutes, then pour in the water, cover the tray with aluminium foil and cook for a further 40 minutes. Drain the liquid off, then return the tray to the oven and cook for a further 30-35 minutes (for medium rare meat; cook for two hours in total for well done).
Add the tomatoes, onions, coriander, squeeze of lime, chopped chillies and spring onions to the tray with the lamb five minutes before the end of the cooking time. Remove the lamb from the oven and leave to rest before carving.
For the rice, wash and drain the rice.
Melt 40g/1½oz butter in a pan until foaming, then fry the onion for 2-3 minutes, or until softened. Add the rice and stir using a wooden spoon until the rice is coated in the butter. Pour the rice and onions into a lidded ovenproof dish.
Bring the coconut milk and milk to the boil in a pan, then remove from the heat and pour over the rice. Stir well, then season with a pinch of salt. Cover with a lid and bake in the oven for 12-15 minutes, or until the rice has absorbed all of the liquid and is al dente. Cut up the remaining butter and dot over the rice, then cover with a lid and allow to melt for a few minutes before fluffing up the grains with a fork.
To serve, carve the lamb into thick slices. Spoon the rice onto the serving plates and spoon over some of the tomato and onion mixture from the tray of lamb. Lay the slices of lamb over the rice, then add a spoonful of natural yoghurt alongside and garnish with coriander shoots.