To make soup base: Heat olive oil in a Dutch oven over medium heat. Add carrots, 2 chopped celery ribs, garlic, onion, red bell pepper, and green bell pepper; cook, stirring frequently, about 4 minutes. Stir in peppercorns, bay leaf, tomato paste, thyme, rosemary and cilantro; cook 2 minutes and add 7 cups of the vegetable broth. Heat to a boil.
Strain through a fine-mesh sieve or cheesecloth; discard solids and return broth to pot.
Melt butter in a small saucepan. Add flour and cornstarch; cook, stirring constantly, 4 to 5 minutes. Slowly whisk in remaining 1 cup broth until mixture is smooth. Add mixture to soup base; cover and simmer over medium-low heat for 20 minutes. Add salt to taste.
To cook snapper: Heat water to boil in a medium-sized saucepan over medium-high heat. Add the 2 onions and 3 celery ribs; blanch until soft, about 3 minutes. Remove with a slotted spoon and add to broth. Boil fish in the same water until cooked through. Remove fish from water; flake very finely with a fork. Stir snapper and Sherry, if desired, into soup base; heat through.