Place the potatoes in a large saucepan with water to cover by 1 inch. Add a generous pinch of salt and cook for 15 minutes, or until tender. Potatoes cook quickly. Test often for tenderness and don't overcook them. Alternatively, cook the potatoes in a pressure cooker for 5 minutes, releasing the pressure immediately to prevent overcooking. Drain the potatoes and arrange them in a 6- by 9- by 2-inch casserole dish.
In a large skillet, add a little oil to coat the pan. Combine the beef and onion and cook together over medium heat until the beef is browned and the onion softened, about 10 minutes. Drain excess fat.
Preheat the oven to 350 degrees F.
Melt the butter in a medium saucepan and whisk in the flour to make a roux. Cook over medium heat, whisking constantly, until the mixture bubbles and the flour turns light brown in color. Gradually whisk in the milk and continue to stir while cooking over medium heat. When the mixture thickens, season with salt and pepper, then stir in the cheese and browned beef and onions.
Pour the ground beef mixture over the potatoes and bake the casserole for 20 minutes, until heated through and bubbling. Sprinkle the breadcrumbs on top of the casserole and bake until the crumbs are toasted, about 5 minutes longer.
Because all the ingredients are fully cooked, if they are still hot when you assemble the casserole, the baking time can be greatly reduced or even eliminated; simply brown the crumb topping under the broiler for a couple of minutes.
Recipe adapted from Georgia Cooking in an Oklahoma Kitchen by Trisha Yearwood (c) Clarkson Potter 2008