2 lbs russet potatoes, peeled
2 C ham, thinly sliced
2 C sharp cheddar cheese, grated
1 C heavy cream
1 C half-and-half
2 shallots, diced
4 Tbsp unsalted butter, divided
3 Tbsp all-purpose flour
1 Tbsp fresh thyme, minced
kosher salt and freshly ground pepper, to taste
1/4 C fried onions, garnish, optional
Preheat oven to 375 F degrees. Lightly grease a 9X13 baking dish.
Slice potatoes into thin rounds and set aside.
In a large pan or skillet, over medium-high heat, melt 2 Tbsp butter. Sauté shallots until softened and translucent. Season with salt, pepper, and thyme. Add ham and cook until just crisp.
In a medium saucepan, melt remaining butter, over medium heat. Stir in flour to create a roux and cook for 1-2 minutes, or until golden and smooth.
Slowly pour in heavy cream and half-and-half. Whisk continuously until smooth. Bring mixture to a simmer, reduce heat, and let thicken for 10 minutes.
Stir in cheese. Mix until melted. Taste and season with salt and pepper, if needed.
Pour 1/4 C cheese mixture into baking dish and smooth around bottom of pan.
Mix potatoes, shallots, and ham. Pour 1/3 mixture baking dish.
Top with 1/3 cheese mixture. Repeat with two additional layers. Cover with aluminum foil.
Bake for 30 minutes, remove foil, and bake for another 15-20 minutes, or until potatoes are tender and sauce is hot and bubbly.