6 small potatoes, peeled and cubed – any potatoes you have on hand will do
3 tablespoons butter
2 cups cubed fully cooked ham
1 small onion, finely chopped
1/4 cup butter
3 tablespoons all-purpose flour
1 1/2 cups whole milk
salt and ground black pepper to taste
1 (8 ounce) package shredded Cheddar cheese *SEE NOTE
1/4 cup bread crumbs
Boil potatoes in a large pot and cover with salted water. Reduce heat to medium-low and simmer until tender, about 20 minutes. Drain.
Preheat oven to 350 degrees F
Grease a 1 1/2-quart baking dish.
Melt the 3 tablespoons butter in a skillet over medium heat. Stir in the ham and onion; cook and stir until the onion has softened, about 5 minutes.
Stir potatoes into ham mixture; transfer to the prepared baking dish.
Melt 1/4 cup butter in a saucepan over medium heat. Stir flour into melted butter until smooth.
Gradually whisk milk into flour mixture; season with salt and black pepper. Continue cooking and stirring until thickened, about 2 minutes.
Reduce heat to medium-low and stir Cheddar cheese into the white sauce until melted.
Pour sauce over ham and potatoes.
Sprinkle bread crumbs atop casserole.
Bake in the preheated oven until sauce is bubbly and browned, 25 to 30 minutes.
NOTES: I use Velveeta Cheese for this casserole.