Heat a large, heavy bottom soup pot over medium heat. Add the chicken stock to start warming.
Add your dried porcini mushrooms to a glass bowl. Pour 1.5 to 2 cups of very hot water over them. Allow them to soak for 15 minutes. After they have rehydrated, strain them through a sieve that is lined with a paper towel or cheesecloth. Add the mushroom stock to the chicken stock. Rinse the remaining porcini under cold water to remove any grit. Set the porcini aside.
In a large saute pan, add in 2 tablespoon butter and olive oil. Heat over high heat. Add the onions, leeks and shallots. Add a pinch of salt. Cook for 2-3 minutes, stirring frequently.
After 2 or 3 minutes, add in the garlic and thyme. Continue cooking for another 3-4 minutes or until very fragrant and the leeks lightly brown. Add the onion mixture to the chicken stock.
Add the remaining butter and olive oil. Return the pan to high heat and add in the fresh mushrooms. If you need to split your mushrooms into 2 batches, make sure that you split the butter and olive oil as well. Cook the mushrooms for 3 minutes and then add a couple pinches of salt. Cook for 2 more minutes and add to the chicken stock when nicely browned.
Add a touch of oil to the pan if there is none remaining from the last batch of mushrooms. Add in the rehydrated porcini. Cook for 3-4 minutes or until very fragrant. Add to the chicken stock.
Bring the soup to a boil. After the soup boils for 1-2 minutes, reduce to a simmer and cook for 15 minutes. Add in the balsamic vinegar. Taste the soup and adjust the seasoning. Add in the remaining salt and pepper sparingly, remembering to stir, taste and readjust until it is balanced.
Turn off the heat and remove about ¼ of the soup from the pot. Make sure that you have a lot of the mushrooms in the bowl that is set aside. Add in the parsley and sour cream to the soup remaining in the pot. Using your immersion blender puree the soup. Taste and adjust the seasonings.
Add the set aside soup back into the pureed soup. Mix well. Serve hot and enjoy!