Melt butter in a large Dutch oven over medium heat. Add onions, celery, carrots, and garlic. Cook until softened.
Sprinkle flour over the vegetables and stir well to coat. Cook for about one minute.
Add the diced potatoes and stir until everything is well mixed.
Pour in the chicken broth and bring to a gentle boil. Reduce heat and simmer for 15 to 20 minutes or until potatoes are tender.
Stir in the milk and let the soup warm through without boiling.
Lightly mash some of the potatoes with a spoon for a thicker texture if desired.
Add salt and pepper. Taste and adjust seasoning.
Serve hot with chopped parsley, bacon bits, or shredded cheese.
