Chop the vegetables, then combine the potatoes, celery, onion, ham and water in a stockpot. Bring to a boil, then cook over medium heat until potatoes are tender, about 10 to 15 minutes. Stir in the bouillon, and add salt and pepper to taste.
In a separate saucepan, melt butter over medium-low heat. Whisk in flour and cook, stirring constantly until thick, usually about 2 minutes. Slowly stir in milk (being careful to not allow lumps to form) until all of the milk has been added. Continue cooking over medium-low heat until thick, stirring occasionally for about 4 to 5 minutes.
Stir the milk mixture into the stockpot, and cook soup until heated through. Serve immediately.