In a medium saucepan, over medium-low heat. melt butter
Add flour; whisk until smooth and cook until flour is no longer raw; about 1 minute; be sure to whisk all around the edges of the pan to prevent scorching.
Whisking constantly, slowly add ¼ cup of the milk, in a thin stream, and whisk until liquid is absorbed; this happens very quickly; the mixture will seize up, but it will loosen as more milk is added.
Slowly add another ¼ cup of the milk, in a thin stream, and whisk until mixture is smooth; repeat with remaining ¼ cup portions of the milk, whisking constantly until mixture is smooth before adding the next batch of milk.
Once all of the milk is incorporated, continue to cook over medium-low heat, stirring frequently, until it starts to simmer and the sauce thickens and coats the back of a wooden spoon; about 8 minutes.
Remove from heat and season with salt, pepper and nutmeg, if using.
If not using immediately, transfer to a heatproof bowl and press the top with a piece of plastic wrap to prevent a skin from forming.
Béchamel can be refrigerated for 3 days; re-heat gently over low-heat, adding a splash of milk or water if too thick.