Heat olive oil in a large pot. Add celery, red pepper and garlic. Cook for 2 minutes. Add zucchini and tomatoes. Season with 1/2 t. salt. Cook for 5 minutes.
Pour in chicken stock and bring to a boil. Cover, reduce heat and simmer for 15 minutes, until tomatoes start to pop. Press the tomatoes against the side of the pot until they crush, or use a potato masher. (The soup will still be very chunky at this point, so don’t worry if you don’t get all the tomatoes.)
Remove from heat. Stir in sugar, 1 teaspoon each of salt and black pepper and fresh basil. Cool soup for 10 minutes (or refrigerate at this point for up to 24 hours).
Process the soup in small batches in a food processor or blender until desired consistency. Pour back into pot and warm slowly.
Once soup is warmed, add cream or milk and grated Parmesan cheese. Continue warming until heated through, but don’t bring to a boil. Season to taste with any additional salt and pepper, if desired.