- 3 1/2 cups peeled and diced potatoes
- 1 cup diced cauliflower
- 1 cup frozen corn
- 3/4 cup diced cooked ham
- 1/3 cup finely chopped onion
- 1/3 cup diced celery
- 3 cloves garlic, diced
- 4 cups water, or as needed to cover
- 2 tablespoons chicken bouillon granules
- 1/2 teaspoon salt, or to taste
- 1 teaspoon ground white pepper
- 5 tablespoons butter
- 5 tablespoons all-purpose flour
- 2 cups milk
- Combine potatoes, cauliflower, corn, cooked ham, onion, celery, and garlic in a large soup pot and cover with water. Bring to a boil, reduce heat to medium, and cook until potatoes are tender, 10 to 15 minutes. Stir chicken bouillon, salt, and white pepper into mixture.
- Melt butter in a saucepan over medium-low heat; whisk in flour to make a paste. Cook for 1 minute and gradually whisk milk into flour mixture until smooth. Continue cooking until thick, 4 to 5 minutes, whisking often.
- Stir milk mixture into soup and cook until heated through, 5 to 10 minutes.