Place the lamb skin side up on a board. Using a large knife make small slices through the skin. Rub the lamb with some olive oil then insert the garlic and rosemary into the slits. Season with salt and pepper.
Place the lamb in a roasting tin and roast for about 20 minutes until browned. Reduce the oven temperature to 160 C, 140 Fan Gas 2-3.
Transfer the lamb to a plate, place the onions and tomatoes into the roasting tin and put the lamb back on top. Add the wine to the tin.
Cover the lamb with foil, place the roasting tin back in the oven and roast the lamb for 3 1/2-4 hours or until completely tender and coming away from the bone.Leave to rest for 20 minutes before carving and serving.
Remove the vegetables from the roasting tin and leave to one side. Remove any excess fat from the roasting juices then pour the juices into a pan and place over a medium heat. Bring to the boil and reduce for about 20 minutes to thicken to a gravy consistency or until it coats the back of a spoon.
Serve the lamb with spoonfuls of the onions and tomatoes and the gravy for pouring over.