Melt 1 tbsp / 14g (0.49 oz) of the unsalted butter in a 3-quart saucepan over moderate heat.
Add the 2 lbs / 1 kg (2.2 lb) chopped tomatoes, apple, chilies, cassia/bay leaf, peppercorns, ginger, and cumin seeds.
Sauté for 1–2 minutes until fragrant.
Pour in 0. 25 cup / 60 ml water, cover, and reduce heat to low.
Cook gently for 20–25 minutes until the tomatoes and apples are very soft and pulpy.
Press the cooked mixture through a fine-mesh sieve into a large bowl to remove skins and spices.
Mix the strained pulp with the 2 cups / 480 ml vegetable stock.
In the clean saucepan, melt the remaining 3 tbsp / 43g (1.52 oz) of butter over low heat.
Whisk in the 2 tbsp / 15g (0.53 oz) flour and cook, stirring constantly, for 2–3 minutes to create a light roux.
Do not let it brown.
Slowly pour the tomato-stock mixture into the roux, whisking continuously to prevent lumps.
Bring to a simmer.
Stir in 0. 25 tsp / 1g (0.04 oz) sugar and 1 tsp / 6g (0.21 oz) salt.
Simmer gently for 5 more minutes.
Stir in the 0. 5 cup / 120 ml half-and-half or cream and heat through gently.
Do not let it boil.
Ladle the hot soup into bowls, garnish with a dab of optional herb butter, and sprinkle with 2 tbsp / 8g (0.28 oz) fresh herbs.
Don't skip the sieving step. Pushing the cooked mixture through a fine-mesh sieve is the secret to a velvety, restaurant-quality soup, removing all skins and coarse spices.