Combine the potatoes, celery, onion, carrot, ham and chicken broth in a stockpot. Bring to a boil, then cook over medium heat until potatoes are tender, about 10 to 15 minutes. Stir in the salt and pepper.
In a separate saucepan, melt butter over medium-low heat. Whisk in flour with a fork, and cook, stirring constantly until thick, about 1 minute. Slowly stir in milk so that lumps don't form and until all of the milk has been added. Continue stirring over medium-low heat until thick, 4 to 5 minutes.
Stir the milk mixture into the stockpot, and cook soup until heated through.
Top with cheddar cheese, chives, and bacon if desired. Serve immediately.