Melt the butter in a large stockpot or Dutch oven over medium heat. Add the sliced leeks and cook, stirring occasionally, until softened, about 8-10 minutes. Be careful not to brown them.
Add the minced garlic to the pot and cook for another minute until fragrant.
Pour in the vegetable or chicken broth and add the diced potatoes. Bring the mixture to a boil, then reduce the heat, cover, and simmer for 15-20 minutes, or until the potatoes are fork-tender.
Remove the pot from the heat. Using an immersion blender, carefully blend the soup until smooth and creamy. Alternatively, you can transfer the soup in batches to a regular blender (be cautious when blending hot liquids) and process until smooth, then return it to the pot.
Stir in the milk, salt, and pepper. Gently reheat the soup over low heat, but do not boil. Taste and adjust seasoning as needed.
Ladle the soup into bowls and garnish with fresh chives or parsley, if desired.