1-1/2 pounds potatoes (about 3 medium), peeled and diced
1/4 teaspoon baking soda
3 tablespoons butter
1 small onion, finely chopped
3 tablespoons all-purpose flour
3-1/2 cups whole milk
4 ounces process cheese (Velveeta), cubed (about 1 cup)
1/2 cup shredded sharp cheddar cheese
1-1/2 cups cubed fully cooked ham
Minced chives and coarsely ground pepper, optional
Place potatoes and baking soda in a large saucepan. Add water to cover; bring to a boil. Reduce heat; cook, uncovered, until potatoes are tender, 6-8 minutes. Drain, reserving 1/2 cup potato water.
In same pan, heat butter over medium heat; saute onion until tender, 2-4 minutes. Stir in flour until blended; cook and stir 2 minutes. Gradually stir in milk and reserved potato water. Bring to a simmer, stirring constantly; cook and stir until thickened, 1-2 minutes.
Stir in cheeses until melted. Stir in ham and potatoes; heat through. If desired, sprinkle with chives and pepper.