In the large pot, melt the butter over medium heat.
Add the chopped onion, garlic, potatoes, carrot, and celery. Cook until the vegetables are tender, about 10-12 minutes.
Add the thyme, salt, and pepper. Stir to combine.
Sprinkle the flour over the vegetables and cook for 1-2 minutes, stirring constantly.
Gradually add the broth, milk, and water, whisking continuously to avoid lumps.
Bring the mixture to a boil, then reduce the heat to medium-low and simmer for 15-20 minutes, or until the potatoes are very tender.
Use an immersion blender to puree the soup until smooth, or leave it chunky, depending on your preference.
Taste and adjust the seasoning as needed.
Serve hot, garnished with chopped parsley or chives if desired.