Sauté the aromatics: In a large pot, heat butter and olive oil over medium heat. Add onion and a pinch of salt.
Cook 5–7 minutes until soft and translucent. Stir in garlic and cook 30 seconds until fragrant.
Add potatoes and seasonings: Stir in the diced potatoes, thyme, pepper, and bay leaf. Toss to coat everything in the butter and seasonings.
Pour in the broth: Add the broth and bring to a gentle boil.
Reduce to a simmer and cook 15–20 minutes, until the potatoes pierce easily with a fork.
Blend for creaminess: Remove the bay leaf. Use an immersion blender to blend the soup until partly smooth, leaving some small chunks for texture. No immersion blender?
Carefully ladle half the soup into a blender, blend until smooth, and return it to the pot.
Finish with dairy: Stir in the milk and cream. Simmer on low for 3–5 minutes. If using, add cheddar and stir until melted.
Taste and adjust salt and pepper.
Serve and garnish: Ladle into bowls and top with chives, bacon, extra cheese, or a swirl of sour cream. Serve with warm bread or a simple green salad.