In a small saucepan, gently warm the milk over low heat. Do not bring it to a boil.
In a separate, medium-sized saucepan, melt the unsalted butter over medium heat.
Add the all-purpose flour to the melted butter, whisking constantly to form a smooth paste. This is your roux. Cook for 1-2 minutes, taking care not to let it brown. If using cornstarch, instead of making a roux, mix the cornstarch with a small amount of cold milk to form a smooth paste, known as a slurry.
Gradually add the warm milk to the roux or slurry, whisking continuously to prevent lumps from forming.
Continue to cook over medium-low heat, stirring often, until the sauce thickens to your desired consistency. This should take about 5-7 minutes. Cornstarch thickens quickly and at a lower temperature than flour, so keep an eye on your sauce to prevent it from becoming too thick.
Stir in the salt, white pepper, and optional nutmeg. Taste and adjust the seasoning as needed.
