Tomato soup has everything milk needs to curdle in every satisfying spoonful: acid, heat and little fat content. Low-fat dairy products like 2 percent milk don't have much stability when exposed to heat and acid -- that's how you make cottage cheese, for example -- and coagulate on contact with low-pH foods like hot tomato soup. Adding starch mixed with a fat, or roux, to the soup stabilizes the dairy proteins and prevents them from coagulating. You can use olive oil or butter; and regular flour, cornstarch or chickpea flour to keep tomato soup velvety smooth.
Heat 1 tablespoon of olive oil or butter in a saute pan over medium heat for every 2 cups of tomato soup.
Add 1 tablespoon of starch to the pan for every tablespoon of fat. Stir the fat and starch together.
Cook the roux until it turns brown, about 5 or 6 minutes, stirring occasionally. Whisk the roux into the tomato soup and bring it to a low simmer.
Simmer the soup gently for 10 minutes and lower the heat to medium-low. Measure about 1/4 cup of whole milk, 2 percent milk or skim milk for every cup of tomato soup. Add an equal amount of hot tomato soup to the milk and combine it with a whisk.
Stir the milk and soup mixture slowly and let it heat for a few minutes. Season the tomato soup to taste and serve.
Heavy cream won't separate when you add it to hot tomato soup; its fat content stabilizes the proteins and prevents them from separating. Use 1 tablespoon of heavy cream for every cup of tomato soup.