Choose a smoked, bone-in ham with a good fat cap covering its surface, which will crisp up in the oven and create an awesome, sweet-and-salty crackling after glazing.
Bring ham out of the refrigerator at least 1 hour before roasting.
For the glaze, in a medium saucepan, add grapefruit juice, honey, chopped tomatoes, vinegar, allspice, five-spice, salt and pepper. Bring to a boil, reduce to medium-low and cook, stirring once or twice, until the mixture is reduced down to the consistency of maple syrup, about 10 minutes. Press mixture through a fine mesh sieve into a clean bowl, discarding whole spices and tomato skin pulp in sieve. Set aside while you prepare the ham.
Position a rack in the bottom half of the oven. Preheat oven to 350ºF. Add ham to a large roasting tray with a splash of water. Score the ham’s fat cap or exterior in a crosshatch diamond pattern, just cutting until you reach the meat (don’t cut into the meat). Cover ham with a tinfoil cover, sealing well and roast for 1 hour 30 minutes to 2 hours, or until warmed through with an internal temperature of 130ºF when registered with a meat thermometer in the thickest part of the ham, nearest the bone.
Remove tinfoil from ham, pull out roasting tray and evenly spoon over glaze. Add back to oven and baste with glaze every 10 minutes for 30 to 45 minutes, until sticky and shellacked. Add a splash of water to the roasting tray to loosen the glaze if it gets too thick.
Watching carefully as to not burn the exterior, turn the broiler onto high for a few minutes at the end to really get that crispy exterior. Remove from oven and rest for 15 minutes, up to 3 hours, then transfer to a cutting board to slice and serve. Ham can be served warm, room temperature or chilled.
Refrigerate any leftovers for sandwiches, chopped in salads or for a pizza topping. Also, make sure to save that ham bone by freezing it until you are ready to make a rich flavourful stock.