Mix together the juice, garlic, oregano, cumin, salt, and water. Put the ham into a large bowl or leak-proof plastic bag and pour over the marinade. Let soak in the refrigerator overnight. (Or let the marinade steep for 1 hour, strain it, and inject it directly into the ham using a marinade injector; wrap and refrigerate the ham overnight. Use any leftover marinade for basting.)
Preheat the oven to 325 degrees F.
Remove the ham from the marinade, reserving the marinade, and pat dry. Strain the marinade into a saucepan and bring it to a boil. Put the ham fat side up into a roasting pan and cook it for about 25 minutes per pound or until the internal temperature registers 155 degrees F on an instant-read thermometer. Baste the ham with the marinade every 20 minutes or so. Remove the ham, cover it with foil, and let it rest for about 15 minutes. The temperature will continue to rise to 160 degrees F. Slice and serve.