In a soup pot, add 2-3 tablespoons olive oil and saute the onions, carrots, celery and bell pepper until onions are translucent, about 5 -7 minutes. Add the garlic and stir cooking a few more minutes.
Toss the chopped veggies (broccoli, cauliflower, zucchini, asparagus, spinach, Swiss chard, potatoes, etc.) in the pot, stir to coat with olive oil and cook for 2 minutes. Using a combination of half vegetable broth and half water, cover the vegetables. Stir to combine and allow to simmer uncovered for 20-30 minutes or until the veggies are almost tender.
Using a blender, ladle the soup in and pulse a few times to puree. I like my soup pureed, but I still leave some unpureed for texture. This will take a few batches. When each batch is the texture you want, pour it into a big bowl until everything is pureed. Alternatively, you could just stick the immersion blender in the soup pot and whirl until it's the texture you like.
Once everything is the right texture, pour the soup back into the pot and let it cook about 5-10 more minutes. Now add a Parmesan rind or two if you have any in the freezer. The Parm will melt into the soup and create a creamy texture as well as add great flavor.
Taste the soup and adjust the seasoning adding salt and freshly ground pepper as needed. By now the Parmesan rinds should have nearly melted or at least partially melted into the soup. You can remove them prior to serving or accidentally plop one in a bowl and let your guest gnaw on it a bit.
If you want a creamy soup, drizzle a tablespoon or two of cream in the pot of soup and stir, adding more cream until you get the creamy color you want. Alternatively, you can add a 1/2 teaspoon or so to each bowl.
Serve this amazing soup with a salad of mixed greens.