Preheat oven to 375°F (190°C). Grease a 9x13-inch baking dish.
In a skillet, melt 2 tablespoons butter over medium heat.
Sauté onion (and garlic, if using) until soft, 3–4 minutes.
Sprinkle 2 tablespoons flour over the onions. Stir 1 minute. Slowly whisk in 1.5 cups milk.
Simmer until slightly thickened, 3–5 minutes. Season with salt, pepper, and thyme.
In the baking dish, combine 2 cups diced potatoes, 1.5–2 cups ham, 1–2 cups mixed vegetables, and 1 cup shredded cheese. Pour the sauce over and stir to coat.
Add a splash more milk if it looks dry.
Top with another 1/2 cup cheese. Add a breadcrumb topping if you like for crunch.
Bake 30–40 minutes, until potatoes are tender and the top is golden and bubbly. Rest 5–10 minutes before serving.
Garnish with parsley.
In a large pot, warm 1 tablespoon butter or oil over medium heat. Sauté onion and garlic until fragrant.
Add 2 cups diced potatoes, 2 cups corn, and 1.5–2 cups ham. Stir in 4 cups broth to start, plus thyme and smoked paprika.
Bring to a simmer.
Cook 12–15 minutes, until potatoes are tender. For creaminess, mash some potatoes and corn against the pot with a spoon.
Stir in 1–1.5 cups milk or half-and-half. Simmer 3–5 minutes more.
Taste and season with salt and pepper. Thin with more broth if needed.
Optional: Add a spoonful of sour cream or a touch of Dijon for extra depth. Top with shredded cheese and green onions to serve.
Preheat oven to 350°F (175°C).
Grease an 8x11-inch or 9x13-inch dish.
Scatter 1.5–2 cups diced ham, 2 cups hash browns or diced potatoes (thawed if frozen), and 1 cup mixed vegetables into the dish. Add half the cheese.
Whisk 8 eggs with 1 cup milk, 1/2 teaspoon salt, pepper, and a pinch of paprika. Pour over the dish.
Top with remaining cheese.
Bake 30–40 minutes, until the center is set and the top is golden. Rest 5–10 minutes before slicing. Garnish with parsley.