01 -
Peel and dice russet potatoes into medium cubes. Finely dice celery and onion.
02 -
In a large saucepan over medium heat, combine potatoes, celery, onion, diced ham, and chicken broth. Bring to a gentle boil and let simmer until potatoes are tender, about 10-12 minutes.
03 -
In a separate pan, melt butter over medium-low heat. Whisk in the flour to form a smooth paste and cook for about 1-2 minutes, stirring constantly to prevent browning.
04 -
Slowly whisk milk into the roux, cooking until the mixture thickens and becomes smooth, about 3-4 minutes.
05 -
Gradually add the milk mixture to the soup pot, stirring gently to combine. Simmer on low heat for 8-10 minutes until soup thickens.
06 -
Season generously with salt and black pepper to taste. Serve hot, garnished with fresh herbs if desired.