Begin by washing the potatoes and then cutting them up into small cubes. Dice the celery, onion, and ham as well.
Add the potatoes, celery, onion, and ham to a large pot. Set the heat to medium-high heat and then add in the water. Bring to a boil, then turn the heat down to medium. Let cook for 10 to 15 minutes.
Add the butter to a large skillet and set the burner heat to medium-low. Once the butter melts, slowly add in the flour while whisking it into the butter. After that, slowly add in the milk, whisking it in, until all combined. Let cook for 3 to 5 minutes or more until it thickens, keep stirring.
Crush up the chicken bouillon cubes and add to the large pot of ham and potato soup.
Add in the milk roux and stir until well combined with the soup. Salt and pepper the soup to taste. Allow the soup to cook for about 5 more minutes. The soup is done.
Serve up a bowl of ham and potato soup and if desired top with shredded cheddar cheese, bacon, green onion, etc. Enjoy!