I use a 2 1/2 quart covered casserole dish for this. This will stick unless you have a great non-stick baking dish.
Preheat oven to 350.
Brown hamburger and onion.
Place a layer of sliced potatoes in casserole dish, top with half of hamburger/onion mixture. Salt and pepper to taste (kind of depends on how salty your cheese sauce is – you can always salt it later if it needs it).
Repeat layering of potato slices and hamburger mixture (and salt and pepper if desired).
Make Cheese sauce:.
Melt 3 T butter in saucepan over med-high heat.
Add 3 T flour, and the salt and pepper. Stir quickly to blend.
Add 2 cups milk; stir with whisk to incorporate butter/flour mixture.
Reduce heat, stir till thickened and bubbly.
Remove from heat and add shredded cheddar. Stir until cheese melts.
Pour cheese sauce over hamburger and potatoes in baking dish. Push potatoes around to let cheese sauce into all of the crevices so it’s well coated.
Cover and place in oven. Bake for about 1 1/2 hours, till potatoes are tender and top is browned. I like to take off the lid for the last 20 minutes or so to brown the top a bit.
Even with the leanest ground beef, this can get little pools of grease on top – I just spoon these off. It doesn’t mean the whole thing is greasy – just cheesy.
My family members consider generous amounts of ketchup a necessary addition to this dish. I like it fine by itself (ok, maybe a spot of ketchup on the side).