Place the lamb in a large roasting tin or cast iron pot. Mix in all the other ingredients and rub them all over the lamb. Cover and let it marinate in the fridge overnight.
Preheat the oven to 320°F (160°C). Remove the lamb from the fridge and place it in the oven. Cook for 3 hours, covered.
After 3 hours, remove the cover and roast for another 2-3 hours. During this time, baste the lamb every half hour with the sauce. If the pan is drying out, add some hot water, about half a cup at a time. The crust of the lamb will darken, which is exactly what you want!
The lamb is ready when it's fork-tender and you can easily shred it off the bone. This usually happens around the 6-hour mark.
Remove the lamb from the oven and skim off as much fat as possible from the gravy. Serve with vermicelli, rice, or roast potatoes.