In a large pot or Dutch oven, melt the butter over medium heat. Add the chopped onion and sauté until translucent, about 5 minutes.
Add the minced garlic and cook for an additional 1 minute, stirring frequently to prevent burning.
Add the diced potatoes to the pot, followed by the broth, salt, pepper, and thyme. Bring the mixture to a boil.
Once boiling, reduce the heat to low and let it simmer until the potatoes are tender, about 20 minutes.
When the potatoes are soft, use an immersion blender to puree the soup until it reaches your desired consistency. If using a regular blender, allow the soup to cool slightly before blending in batches.
Stir in the heavy cream or milk and warm the soup over low heat for another 5 minutes.
Taste and adjust seasoning if necessary. Serve hot, garnished with your choice of chives, bacon bits, or cheese.