Sauté the aromatics: Heat butter and olive oil in a heavy-bottomed pot over medium heat. Add onions and sauté until translucent (about 5 minutes).
Add potatoes and spices: Toss in all diced potatoes. Stir in garlic, salt, pepper, paprika, and thyme. Cook for 2–3 minutes to coat them with flavor.
Simmer to perfection: Pour in broth and bring to a boil. Reduce heat, cover partially, and let it simmer for 20 minutes or until potatoes are fork-tender.
Blend to your desired texture: Use an immersion blender for a rustic finish or transfer to a high-speed blender for ultra-smooth soup.
Stir in the dairy: Return soup to low heat. Stir in milk and cream. Simmer uncovered for 5 more minutes. Adjust salt and pepper.
Serve hot: Ladle into bowls and top with garnishes of choice—chopped herbs, cheddar, crispy bacon, or a swirl of sour cream.