How to Make It
Preheat oven to 375°F.
Place potatoes in a Dutch oven; cover with cool water. Bring to a boil over high; reduce heat to medium-low, and simmer until almost tender, about 10 minutes. Remove potatoes with a slotted spoon; place in an 11- x 7-inch baking dish coated with cooking spray.
Add asparagus to boiling water; cook 1 minute. Add onion halves; cook 1 minute. Reserve 1/2 cup cooking liquid; drain asparagus mixture. Arrange asparagus and onions in baking dish with potatoes.
Whisk together milk and flour in a small saucepan. Add reserved cooking liquid. Bring to a simmer over medium-high; cook until thickened, 4 to 5 minutes. Remove from heat. Add salt, pepper, and cheese; stir until cheese melts. Spoon evenly over vegetables in baking dish. Bake at 375°F until top is bubbly and lightly browned, about 30 minutes.
Meanwhile, heat oil in a small skillet over medium. Add garlic; cook until fragrant, about 1 minute, stirring constantly. Add bread and parsley, and toss to combine.
Remove gratin from oven. Preheat broiler to high with oven rack in upper middle position. Sprinkle breadcrumb mixture over gratin; broil until browned, 1 to 2 minutes.