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.