Put the ham into the biggest saucepan you can find ( I have used a preserving pan but what works best will depend on the shape of the ham). Pour in the ginger ale and place it over a medium heat.
Add the onions, carrots, leeks, spices and bouquet garni and add water to cover. Slowly bring to the boil and using a large spoon carefully remove any scum that appears, repeating until the surface is clear.
Once the liquid is bubbling, reduce the heat to a simmer for 2 hours. Top up regularly with cold water and remove scum from the surface everytime you do so.
Preheat the oven to 200 C, 180 Fan Gas 6. Once the ham is cooked remove it from the pan carefully so as not to tear the meat, Reserve the cooking liquid for use in a soup or stock or other recipe. Cool for 10 minutes.
Place the ham in a large roasting tin . Slice the skin off very carefully to reveal a thick layer of white fat then score the fat all over in a diamond pattern.
Put all the glaze ingredients except the cloves in a saucepan over a medium heat and stir until everything has melted. Cool slightly then rub all over the ham. Put a clove into the corners of each diamond shape.
Roast for 30 minutes until sticky and caramalized. Leave it to rest for 1 hour if you want to eat it warm, or let it cool completely.