Add the milk, cinnamon, cloves, and nutmeg to a large saucepan and bring to a low simmer over medium heat.
Meanwhile, in a large heatproof bowl, beat the egg yolks until a little light and fluffy. While whisking, slowly add in the sugar and salt.
When the milk is simmering and while continuing to whisk the egg yolk mixture, slowly add the milk, ladle by ladle. Return the mixture to the pot and cook over medium heat, stirring constantly, for about 3 minutes or until thickened.
Remove from the heat and pass the mixture through a fine mesh sieve into a large pitcher or container. Add in the cream, vanilla, and rum or brandy, if using, and set aside to cool to room temperature.
Cover and transfer to the fridge to chill. If using alcohol, the eggnog will last for up to 2 weeks in the fridge. If omitting alcohol, the eggnog is best enjoyed within 3 days.