For the spice mixture, Mix all the spices together. Add to a food processor along with the chopped onion, garlic, ginger, salt and pepper. Pulse until a paste forms then add the oil and lemon juice, season well. Cut slits in the lamb to allow the flavours to sink in then rub the spice mixture onto the lamb shoulder. If you have time allow it to marinate for 1 hour.
To cook the lamb: Heat the oven to Gas Mark 3, 160°C (320°F). Arrange the onion slices in the bottom of a roasting tin and put the lamb on top. Pour 250ml of water around the lamb in the tin and cover with foil. Place in the oven and cook for 1 hour. Then remove the tin foil and turn the heat up to Gas Mark 4, 180°C (350°F) and cook for a further 30 minutes. When the lamb is cooked transfer it to a serving platter, cover loosely with foil, and let it rest while you prepare the couscous and yogurt.
To prepare the couscous: Place the couscous in a large bowl. Stir through the lemon zest and juice, olive oil, garlic and the boiling water. Cover and leave for 10 minutes. Take off the cover, fluff up the couscous with a fork and leave to cool before stirring through the tomatoes, cucumber and herbs. Taste and season. Transfer to a serving dish.
To prepare the garlicky yogurt: Combine all the ingredients. Taste and season.
To serve: Slice the lamb and serve with the couscous and garlicky yogurt.