In a medium saucepan, melt the butter over medium heat.
Stir in the flour to create a smooth paste (roux). Cook for 1-2 minutes, stirring constantly.
Gradually add the milk, whisking continuously to avoid lumps.
Cook the sauce over medium heat, stirring constantly until it thickens and comes to a simmer.
Reduce the heat to low and simmer for a few more minutes, stirring occasionally.
Remove the saucepan from heat and stir in the grated cheddar and Gruyère cheeses until they are fully melted and the sauce is smooth.
Season the cheese sauce with salt, pepper, ground nutmeg, and paprika (if using). Adjust the seasonings to taste.