One 1-pound round loaf of sourdough bread, crusts removed, bread cut into
2 cups shredded Swiss cheese
1 cup grated Parmesan cheese
2 large eggs
1 1/2 cups milk
1 1/2 cups heavy cream
In a medium skillet, melt 2 tablespoons of the butter. Add the shallots and leek and cook over moderate heat, stirring, until softened, about 4 minutes. Add the mushrooms, season with salt and pepper and cook over moderately high heat until lightly browned, about 7 minutes; transfer to a large bowl.
Melt the remaining 1 tablespoon of butter in the skillet. Add the spinach and cook, tossing, until wilted, about 1 minute. Add the spinach to the mushrooms with the bread, Swiss cheese and 1/2 cup of the Parmesan and toss.
Beat the eggs in a small bowl. In a saucepan, bring the milk and cream to a boil, then gradually whisk into the eggs. Stir the custard into the bread and let stand, stirring occasionally, until absorbed, about 15 minutes.
Preheat the oven to 400°. Butter eight 3/4-cup ramekins and set them on a baking sheet. Spoon the pudding into the ramekins and bake for 20 minutes, or until browned. Let cool for 15 minutes.
Preheat the broiler. Turn the bread puddings out onto an ovenproof platter. Sprinkle with the remaining 1/2 cup of Parmesan and broil for about 30 seconds, or until golden. Serve hot.