Step 1: In a large pot or Dutch oven, melt butter with olive oil over medium-low heat.
Step 2: Add the sliced onions and cook slowly, stirring occasionally, for 25–30 minutes until they are golden brown and caramelized. Be patient, as this develops the soup’s rich flavor.
Step 3: Add minced garlic and cook for an additional 1–2 minutes until fragrant.
Step 4: Stir in diced potatoes, broth, salt, black pepper, and thyme. Bring to a gentle simmer.
Step 5: Cover and cook for 15–20 minutes, or until the potatoes are tender and easily pierced with a fork.
Step 6: Use an immersion blender to puree the soup until smooth. For a creamier soup, stir in heavy cream or half-and-half and heat through without boiling.
Step 7: Taste and adjust seasoning as needed.
Step 8: Serve hot, garnished with freshly chopped chives or parsley.