Heat the olive oil in a large pot over medium heat.
Add the diced onion and sauté until translucent, about 5 minutes.
Stir in the minced garlic and cook for another minute until fragrant.
Add the carrots and celery; cook for 5-7 minutes, stirring occasionally.
Incorporate the diced zucchini and red bell pepper; cook for another 5 minutes.
Stir in the undrained canned tomatoes, vegetable broth, oregano, and basil.
Bring the soup to a simmer, lower the heat, and cover it; cook for about 20 minutes.
Add the chopped spinach or kale during the last 5 minutes of cooking.
Season with salt and black pepper to taste, and remove from heat.
Serve hot, garnished with grated Parmesan cheese if desired.