In a large pot, melt the butter over medium heat. Add the chopped onions and garlic, and sauté until the onions are translucent.
Add the diced potatoes to the pot and stir to combine.
Pour in the broth and bring the mixture to a boil. Reduce heat and simmer for about 20 minutes, or until the potatoes are tender.
Using an immersion blender, blend the soup until smooth. If you don’t have an immersion blender, you can carefully transfer the soup to a regular blender in batches
Stir in the milk and season with salt and pepper. Heat the soup until it’s warm, but don’t let it boil.
Serve hot, garnished with fresh herbs if desired.