For this dish, have the butcher butterfly the leg of lamb. When it is butterflied, the lamb is more even in thickness and more of it gets exposed to the marinade. Because it's cooked flat, the lamb cooks more quickly in the oven or under the grill than it would if the meat were bone-in. As always with a large cut of meat, I strongly advise using a meat thermometer, preferably a battery-operated probe type, that will beep when the meat reaches the correct temperature.
The spice mix is adapted from a version by one of my favourite food writers, J. Kenji López-Alt, from the website Serious Eats, who uses it for tandoori game hens. His spice mixture makes enough for two legs of lamb but it is worth making the entire amount, rather than halving the recipe; store the excess in an airtight container and freeze it for another occasion. When ready to use the excess spice mixture, thaw it in the fridge. Mix it with 60ml (4 tbsp) of lemon juice and 250g (9oz) of yogurt before spreading it over lamb or chicken.
Lay the butterflied leg of lamb on the work surface and lightly but evenly sprinkle both sides with salt. Leave at room temperature for at least an hour.
While the lamb is salting, prepare the other ingredients. Put the cumin seeds into an unoiled skillet and toast over a medium flame until fragrant, stirring almost constantly. Transfer the cumin seeds to the bowl of a small grinder or blender (preferably a high-speed grinder, such as a NutriBullet).
Put the coriander seeds into the same skillet (no need to wash it) and toast them the same way, then add them to the cumin seeds, along with the paprika, turmeric, cayenne and achiote/annatto seeds. Process until the spices are finely ground.
Roughly chop the garlic and ginger. Add the garlic cloves, ginger and salt to the blender, then grind again.
Divide the mixture into two even portions, putting half into a medium-sized bowl, and the remainder into an airtight container (freeze until needed).
Mix the lemon juice and yogurt into the spice mixture, then rub this evenly over the entire surface of the lamb. Fold or roll the lamb so you can put it in a container that fits in your fridge. Refrigerate for four to eight hours.
Take the lamb from the fridge an hour before you want to start cooking it. Scrape off most of the marinade.
If cooking indoors, lay the lamb fatty side-down on a lightly oiled tray large enough to hold the meat flat. Preheat the oven grill to high. When the grill is hot, slide the tray into the oven so the meat is about 3cm (1¼ in) from the heat element. Cook until the top of the lamb is sizzling and browned in spots.
Take the tray from the oven and flip the meat over so the fatty side is up. Insert a probe-type meat thermometer into the thickest part of the lamb and set it to go off at 50°C (122°F) if you want it medium-rare. Slide the tray back into the oven so the meat is about 5cm (2 in) away from the heat source.
Cook the lamb, watching it carefully so it does not burn; if it starts to brown too much, move the tray further from the heat. Cook until the thermometer reaches 50°C, then take the tray from the oven and leave to rest for about 15 minutes; the internal temperature will continue to rise to about 60°C (140°F), which is what you want for medium-rare lamb.
If cooking the lamb over an outside grill, start preparing the coals at least 30 minutes before you want to cook, if using a chimney starter, or longer using other methods. When the coals are hot, arrange them around the perimeter of the grill and place the rack about 10cm (4 in) above the heat. Scrape the marinade from the lamb.
Place the lamb fatty side-up on the grill and cook uncovered for about 10 minutes, or until the meat is nicely charred in spots. Flip over the lamb, then insert the meat thermometer into the thickest part, setting it to go off at 50°C (122°F). Cook the meat over the coals, watching it carefully so it does not char too much; if it gets too dark, move the rack higher above the coals. When the thermometer goes off, let the meat rest for about 15 minutes.
For both cooking methods, slice the lamb against the grain and serve with roasted potatoes, naan bread, a variety of chutneys and whatever other side dishes you like.