Begin preparing the tomato soup, by heating the oil in a large pot. Add the onion, garlic, celery and carrot to the pot and cook until tender and slightly brown. Add tomatoes and water, and simmer for about 25 minutes.
Then, stir in lemon zest, orange zest, basil and additional water if needed. Season with salt and pepper to taste and simmer for 5 more minutes. Next, ladle soup into a blender. Add a little parmesan cheese and butter to each portion of soup being blended, until all of the soup is smooth. Pour it back into the pot when done. Lastly, taste and adjust with salt and pepper. Set aside and keep warm.
To make the grilled cheese sandwiches, melt 1 teaspoon of butter in a nonstick frying pan. When butter is melted add a slice of bread and layer the mozzarella and cheddar cheeses, and top with another slice of bread. Toast sandwich on medium heat for about 5 minutes. Flip sandwich and toast reverse side. Once all sandwiches are nicely toasted, cut into pieces and serve with the tomato soup.