Start the Base
In a large pot, combine the diced potatoes, water, cooked ham, celery, and onion.
Cook Until Tender
Bring the mixture to a boil, then reduce the heat and simmer for 10–15 minutes, or until the potatoes are soft.
Season the Soup
Stir in the chicken bouillon granules, pepper, and salt, mixing well.
Make the Cream Base
In a separate pan, melt the butter over medium heat. Stir in the flour and cook for about 1 minute.
Add Milk
Gradually whisk in the milk, continuing to cook until the mixture becomes thick and smooth.
Combine Everything
Pour the prepared milk mixture into the soup and stir until fully incorporated.
Warm Through
Allow the soup to cook for a few more minutes until everything is heated through and well combined.
Serve Hot
Ladle the soup into bowls and serve warm.