Melt the butter in a large sauté pan over medium heat. Whisk in the flour, and cook (stirring constantly) 3 minutes, or until the flour is lightly browned. Whisk the milk into the sauté pan and bring to a boil (continue to watch closely and stir). Reduce the heat and simmer for 5 minutes or until thickened. Stir in the shredded cheese, onions, salt and pepper. Stir until the cheese melts.
Preheat the oven to 325 degrees F. Spray a 13 x 9-inch baking dish with nonstick spray. Spread 1/4 cup of the cheese mixture evenly in the dish. Layer half of the potatoes in the dish and top with about half of the remaining sauce. Place another layer of potatoes and spread the rest of the sauce on top.
Bake, covered, for 2 hours.
PREPARE TOPPING:
In a medium bowl, combine the breadcrumbs, butter and Parmesan. Sprinkle evenly over the cooked potatoes. Bake uncovered for 20 minutes more, or until the breadcrumbs are browned and the potatoes are tender.
Notes
*If you anticipate a larger crowd: use a larger baking dish, add a few more potatoes and increase amounts for the cheese sauce.