Preheat the oven to 400°F. Grease a 9x13 inch baking dish with butter or non-stick cooking spray. Set aside.
In a medium saucepan melt the butter. Add the diced onion and cook over medium heat until translucent.
2 Tablespoons unsalted butter, 1 small yellow onion
Sprinkle the flour over the cooked onion and stir to combine. Add in the milk, chicken stock, sea salt, black pepper, and garlic powder. Continue to heat, stirring often, until warmed through and slightly thickened.
3 tablespoons all-purpose flour, 1 ¼ cups whole milk, ½ cup chicken stock, ½ teaspoon fine sea salt, ½ teaspoon ground black pepper, ½ teaspoon garlic powder
Spread the potatoes evenly in the bottom of the prepared baking dish and top with the diced ham. Pour the milk mixture over the ham and potatoes.
2 pounds russet potatoes, 2 ½ cups diced cooked ham
Cover and bake for 40-45 minutes.
Remove from oven and top with shredded cheese. Continue to bake, uncovered for an additional 10-15 minutes or until the cheese is completely melted and potatoes are tender.
4 ounces 1 cup white cheddar cheese