Creamy ham and potato casserole layers diced ham and sliced potatoes in a velvety cheese sauce for a hearty family dinner. This protein-rich comfort food is perfect for using leftover holiday ham.
Preheat the oven to 375°F. Grease a 9x13-inch casserole dish with a small amount of butter.
Peel and thinly slice the russet potatoes, and dice the ham and onion. Set aside.
In a saucepan over medium heat, melt 3 tbsp of butter. Add the diced onion and sauté for 3 minutes until translucent.
Sprinkle in flour. Stir for about 1 minute to remove the raw taste, then slowly whisk in milk. Add salt, pepper, garlic powder, and thyme. Cook, stirring constantly, until slightly thickened (around 4–5 minutes).
Remove from heat and stir in 1.5 cups of cheddar cheese until melted and smooth, reserving 0.5 cup for topping.
In the prepared dish, layer half the potatoes, half the ham, and pour over half the cheese sauce. Repeat the layers with remaining potatoes, ham, and sauce.
Top with reserved cheddar cheese. Cover the dish with foil and bake for 40 minutes.
Uncover and bake for an additional 25–30 minutes, or until the potatoes are fork-tender and the top is golden and bubbling.
Let the casserole cool for 10 minutes before serving to allow the sauce to thicken.