Melt butter in a saucepan over medium heat. Add flour then whisk for one minute. Slowly whisk in milk to create a smooth sauce then season with salt and pepper and stir to combine.
Cook while stirring slowly yet constantly until milk has thickened, 4-5 minutes, being careful to adjust the heat so that the milk never boil. Turn off the heat then sprinkle in the cheese. Stir until sauce is melted and smooth then taste and add additional salt and pepper if necessary. Serve immediately.
Video
Notes
Always use freshly grated cheese as pre-shredded cheese is coated with anti-caking agents that keep it from melting smoothly.
The key to getting a non-grainy cheese sauce is to never let the milk boil. It should always be at a gentle simmer.