Heat oil and butter in a 4-quart stockpot over medium heat. Add shallots, pinch salt and pepper and rosemary. Cook over medium heat, stirring occasionally, until shallots begin to brown, about 7 minutes. Add celery and continue to cook until translucent, about 2 minutes. Add fresh mushrooms and generously season with salt and pepper, stirring frequently for about 5 minutes, until mushrooms lose approximately half their volume.
Using a slotted spoon, remove porcini mushrooms from water and add them to stockpot. Increase heat to medium high and add Marsala. Cook 1 minute.
Slowly pour porcini liquid into stockpot, leaving any sediment behind. Add potato and chicken broth and bring to a boil, then reduce to a simmer and cook until potatoes are tender, about 20 minutes. Turn off heat and let soup cool slightly (about 8 minutes), stirring occasionally.
Using a standard or immersion blender, puree soup until smooth. If using a standard blender, puree in small batches to prevent spillage. Transfer to a clean pot or storage container. Soup can be refrigerated for up to 2 days or frozen for up to 2 months.
When ready to serve, reheat soup and add thyme and milk; stir well. Use additional milk or chicken broth if soup is too thick. Simmer 5 minutes and adjust seasoning to taste. Turn off heat, add Madeira, stir well and serve immediately.