In a small pot, heat milk on medium-low (if using vanilla bean, slice it open and scrape seeds into pot, and toss the bean in too). Stir occasionally, until small bubbles appear along the edges, and turn heat off. Should be about 5 minutes.
In a metal bowl, whisk together egg yolks, sugar, cinnamon, and nutmeg.
Add a quarter of the heated milk into the bowl, while constantly whisking (to prevent the eggs from cooking). Then repeat with another quarter of the milk.
Finally, pour everything in the bowl back into the pot, while continuing to whisk.
Turn fire on to low, and with a heat-resistant plastic spatula, stir constantly to prevent the mixture from cooking on the bottom of the pot.
Without allowing it to boil, heat until the mixture thickens enough to coat the back of a spoon (or if you have a cooking thermometer – when it reaches 160F to pasteurize the eggs). Should take about 10 minutes. Turn heat off and let sit for 5 minutes, stirring frequently.
Layer the bottom of a large bowl with ice cubes, and set a small metal bowl inside. Pour mixture through a strainer into the small, metal bowl. (If using vanilla extract or paste, add it now)
Stir mixture occasionally to help cool faster. Once cooled, transfer the mixture into air tight container, and place it in the refrigerator.*
While the cooked mixture is cooling in the refrigerator, take out the chilled cream and whip it up until thickened (recipe and tips for sugar-free whipped cream). If you want to make a rum whipped cream, add in a tablespoon of rum and a couple teaspoons of sugar to the cream once it begins to thicken.
Place three glasses in the refrigerator, and when cooled, pour eggnog mixture into each glass (about 2/3 full). Add in desired amount of rum and stir well. Then fill each glass up with whipped cream.**
Sprinkle cocoa powder, nutmeg, or cinnamon on top, and enjoy your Christmas spirit!