In a large soup pot or Dutch oven, melt the butter over medium heat. Add the onions, carrots, and celery, and sauté for about 5 minutes until softened. Stir in the garlic and cook for another 1–2 minutes until fragrant.
Add the diced potatoes, thyme, parsley, and chicken broth. Bring to a boil, then reduce heat and let simmer for 15–20 minutes or until potatoes are fork-tender.
In a small bowl, whisk the flour into the milk or half-and-half until smooth. Slowly stir this mixture into the soup. Continue simmering for 5–7 minutes, stirring frequently, until the soup thickens slightly.
Stir in the shredded chicken and let it heat through for about 5 minutes. Season with salt and pepper to taste.
Ladle the soup into bowls and top with your favorite garnishes like crispy bacon bits, shredded cheese, or green onions for extra flavor and texture.