Combine the potatoes, celery, onion,, ham and chicken broth in a pot. 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, 3-4 minutes.
Stir the milk mixture into the stockpot, and cook soup until heated through. You can add a little more milk or chicken broth to thin it out if needed.
Top with cheddar cheese, chives, and bacon if desired. Serve immediately. Store leftovers in an airtight container in the fridge.