2 1/2 cups 1% low-fat milk
2 tablespoons all-purpose flour
3/4 teaspoon salt
1/2 teaspoon black pepper
2 teaspoons butter
1/2 cup finely chopped onion
1 cup (4 ounces) shredded Gruyère cheese, divided
2 pounds Yukon Gold potatoes, cut into 1/8-inch-thick slices (about 6 1/2 cups)
4 ounces ham, chopped
Preheat oven to 350°.
Combine first 4 ingredients, stirring with a whisk; set aside.
Heat butter in a medium saucepan over medium heat. Add onion; cook 3 minutes or until tender, stirring frequently. Stir in milk mixture; bring to a boil. Cook for 2 minutes, stirring constantly. Remove from heat; add 1/2 cup cheese, stirring until smooth.
Arrange half of potatoes in an 11 x 7-inch baking dish coated with cooking spray. Pour half of sauce over potatoes; top evenly with ham. Top with remaining potatoes and remaining sauce; sprinkle evenly with remaining 1/2 cup cheese.
Cover with foil coated with cooking spray. Bake at 350° for 40 minutes. Uncover and bake an additional 45 minutes or until potatoes are tender and the cheese is golden brown. Remove from oven; let stand 5 minutes before serving.