Heat the oil or oil and butter in a big heavy-bottomed saucepan. Add the mushrooms and sauté until they brown and their liquid has evaporated—about 10 or 12 minutes. Add the shallots and garlic and sauté, stirring, for another minute or so, until the shallots become translucent.
Add the potatoes, broth, and caraway, and stir everything together. Bring it to a boil, then reduce the heat to a gentle simmer and cook until the potatoes are tender.
Remove from heat and let it cool a bit. Add salt to taste while it is still warm.
Puree in batches in a blender or food processor. A hand blender is probably not going to do the job. And be careful! Blending warm or hot liquids can be dangerous—work in small batches. Process for at least 90 seconds (depending on the power of your blender or processor). This is best when it is velvet smooth.
Once the soup is pureed, add it back to the saucepan. Add half and half to taste—probably two to four tablespoons per cup will do it—and stir it in. Heat it gently, garnish if you like, and serve right away.