Pour milk into a medium pot and heat gently over medium heat with cinnamon and nutmeg.
While the milk is warming, prepare the egg yolks: in a large bowl, whisk egg yolks and sugar together until thick and lighter in color. Once the milk is hot but not quite simmering, reduce heat to low.
Temper the egg yolks by whisking about 3/4 cup hot milk into the egg yolks and sugar.
Pour the tempered egg mixture into the pot with the rest of the hot milk. Cook very gently, stirring constantly, until thickened. This should take about 5 minutes.
Remove from heat and stir in vanilla extract, rum extract (or chosen alcohol), half and half and heavy cream.
Optional step: for a smoother eggnog, strain using a fine mesh strainer lined with cheesecloth.
Pour into an airtight container and refrigerate until completely chilled. Serve with extra nutmeg.
For Traditional Egg Nog:
Whip the 4 egg whites (the ones you didn't use from the egg yolks above) until stiff peaks form. Fold into chilled egg nog and serve.