Melt butter in a Dutch oven over medium heat; add onions. Cook over medium heat, stirring occasionally, 35 minutes or until onion is lightly browned and very tender. Add garlic, and cook 1 minute. Add 1 cup broth, stirring to loosen browned bits from bottom of pan (can make ahead to this point. Remove onions from heat; cover and chill until ready to prepare remainder of soup). Stir in 2 cups broth; bring to a boil. Cover, reduce heat, and simmer 10 minutes. Remove from heat, and let cool 30 minutes.
Meanwhile, heat oil in a large skillet over medium-high heat. Add mushrooms, and cook 8 to 10 minutes, stirring once or twice, until mushrooms are lightly browned and liquid has evaporated; stir in 1/2 teaspoon salt. Remove from heat, and set aside.
Process soup, in batches, in a blender or food processor 2 minutes or until smooth, stopping to scrape down sides. Return to Dutch oven. Stir in remaining 1 1/2 cups broth and whipping cream; bring to a boil. Remove from heat; stir in sherry, lemon juice, 1/4 teaspoon salt, and pepper.
To serve, ladle soup into individual bowls, and top evenly with mushrooms; dollop each with sour cream, if desired.
Make Ahead: To jump-start this recipe, begin a day ahead and caramelize the onions up to the point of adding 2 cups of broth.