Combine tomatoes, onion, carrots, and garlic in a large pot. Drizzle olive oil over tomato mixture; cook and stir over medium heat. Cover pot and simmer, stirring occasionally, until vegetables are tender, about 25 minutes.
Mix chicken broth, salt, sugar, dill, black pepper, celery salt, and cloves into tomato mixture. Cover pot and simmer, stirring occasionally, until soup flavors have blended, about 20 minutes.
Whisk milk and cornstarch together in a bowl until dissolved.
Heat butter in a saucepan over medium-low heat. Whisk cornstarch mixture into melted butter until smooth and thickened, 3 to 5 minutes.
Slowly pour cornstarch mixture into tomato soup, stirring until incorporated.
Pour half of the soup and basil leaves into a blender no more than half-full. Cover and hold lid down; pulse a few times before leaving on to blend. Puree soup in batches until smooth. Return blended soup to pot and heat on low for 3 to 5 minutes. Spoon soup into serving bowls and top with Parmesan cheese and shredded basil.