In a large pot, combine ingredients 1-10 and bring to a boil. Reduce heat to low and simmer for 30 minutes, uncovered.
Using a food processor or blender, puree soup in small batches (1 cup at a time). Or, use an immersion blender to blend right in the pot. Return soup to pot and bring to a boil. Reduce heat to low and simmer for another 30 minutes, uncovered. Remove from heat and stir in heavy cream.
Pour into serving bowls. If desired, top with chopped cooked bacon, Parmesan and/or sour cream.