Microwave the milk or warm it in a non-stick saucepan for a few minutes. Don't boil, just warm up. Set aside.
In a non-stick saucepan, over medium heat, melt butter.
Remove the saucepan from the heat and use a wooden spoon to stir the flour into the melted butter. Stir until it forms a yellow paste-like texture called Roux.
Return to medium heat, stir and warm the mixture for 20-30 seconds to slightly dry out a bit. Switch to hand whisk, gradually add 1/2 cup warm milk, whisking at the same time to dissolve the roux into the warm milk.
Add the two remaining cups of milk and bring it to a boil.
Reduce the heat, stir occasionally, and cook for 10 minutes or until the sauce is creamy and thick. If the sauce is too thick to your liking, stir in more milk, simmer and cook until it thickens.
When the sauce has thickened as you like, stir in the cheese and cook fir 1 minute or until the cheese is melted
Taste the sauce and add salt, pepper, and garlic powder if desired.