For the liquid marinade, heat the olive oil in a large saucepan over a low heat. Add the red onion and garlic and cook until softened.
Add the remaining liquid marinade ingredients and simmer until the mixture takes on a slightly syrupy consistency. Leave to one side.
For the dry marinade, crush the rosemary, thyme and garlic in a pestle and mortar, along with sea salt and freshly ground black pepper. Add a splash of olive oil.
Run the lamb under cold water and pat dry with kitchen paper. Place the lamb on a baking tray.
Using a sharp knife, make incisions in the lamb, deep enough to pierce the fat, but without cutting through the flesh.
Push pinches of the dry marinade down into the incisions in the lamb, reserving a small amount. You can use the handle of a teaspoon to push the marinade into the lamb, or alternatively use your fingers.
Pour over the liquid marinade, taking care to cover all the lamb. Sprinkle over the remaining dry marinade. Cover the lamb with cling film and set aside.
If you like, you can drop in a sprig or two of rosemary or thyme to the marinade surrounding the lamb. Leave the lamb overnight (or about two hours if you don't have time).
When you are ready to cook the lamb, preheat the oven to 220C/400F/Gas 7. Spoon the marinade surrounding the lamb out of the tray and into a bowl. Sprinkle the lamb with more sea salt and freshly ground black pepper to taste.
Place the lamb in the preheated oven and roast for 20 minutes.
After 20 minutes, reduce the temperature to 180C/350F/Gas 4. At 30-40 minute intervals, remove the tray from the oven and baste the lamb with the marinade liquid in the tray and any reserved liquid from the bowl.
After two hours coking time, remove the lamb from the oven and let it rest in a warm place for at least ten minutes before carving.
For the gravy, heat the olive oil in a pan and add the onion. Cook until the onion is softened, but not coloured. Add what is left from the lamb marinade in the bowl, any juices that have collected in the tray and the wine. If you feel there is not enough liquid, add some lamb stock.
Boil the gravy vigorously for a few minutes and then turn down and simmer until you are ready to serve - the liquid should reduce and thicken. If the gravy appears too thin, make a paste in a small bowl by mixing together a small amount of butter and flour with your fingers. Whisk the paste into the simmering gravy to thicken the gravy.
Serve the lamb in slices with the gravy poured over.