Remove lamb shoulder from the fridge 1 hour before cooking time to bring it to room temperature.
Heat a fan-forced oven to 150°C (See recipe notes below for temperature conversions)
Using a non-stick frying pan, dry-roast fennel and cumin seeds for 10 - 30 seconds or until fragrant. Do not burn or all flavour will be lost. Grind seeds into a powder along with sea salt flakes. Combine with Madras curry powder.
Rub meat deeply and generously with the spice mix, making sure to reach every corner until it's completely coated. Leave for 30 minutes to absorb the flavour. (For maximum flavour this can be done before and left to marinade anywhere from 30 minutes - 12 hours).
Peel onions and slice into wedges approximately 2cm thick. Separate garlic cloves from the bulb but leave the skin on. Drizzle and coat the onion wedges and garlic evenly with oil.
Place onions and garlic into the middle of a large and high roasting tray.
Place the lamb on top of the onions and garlic, making sure they sit evenly and nicely under the meat.
Cover tightly with aluminium foil and carefully transfer to the middle shelf of the oven (don't move too fast or the meat will slide off the onions and garlic).
Roast for 2 hours. At this point remove the tray from the oven, carefully peel away the foil and pour 375ml of water around the bottom of the tray, but not over the meat. This is going to be your sauce.
Cover again tightly with foil and return to the oven. Roast for a further 1.5 hours.
When done, remove the tray and leave it to rest, still covered, for 20 - 30 minutes. This will allow the lamb to become soft and juicy again.
Peel away foil and transfer lamb to a large plate or serving board. Remove skins from garlic cloves and discard. Transfer onions, garlic and pan juices to a blender and blend until smooth. Taste and season with salt if needed.
When ready to serve, quickly reheat the lamb sauce until it's nice and hot. Serve alongside the madras lamb shoulder.