Preheat oven to 170˚C (150˚C fan forced). Combine 2 tbsp oil, salt and a pinch of freshly ground black pepper, garlic, paprika, cumin, cinnamon, and mixed herbs in a large bowl. Add lamb and rub to coat. Cover and chill for 1 hour to overnight to marinate. If time allows bring lamb to room temperature before cooking.
Heat remaining oil in a large ovenproof pan with lid over medium heat. Add onion and cook, stirring occasionally for 5 minutes or until softened. Remove onion from pan and set aside.
Add lamb to hot pan and cook for 3 minutes each side or until evenly browned. Return onion to pan with 2 cups (500ml) water and bring to boil. Remove from heat cover with lid or baking paper and foil, sealing well. Transfer to oven and roast, basting halfway, for 3 hours or until tender.
Drizzle lamb with the lemon juice to taste and transfer to a plate, loosely covered with foil, to keep warm. Return cooking liquid to stove over high heat and bring to boil. Cook, stirring occasionally for 10 minutes or until thickened slightly. Serve lamb with roasted vegetables.