Wash and chop the celery and onion. In a pot, pour in water and bring it to a full boil, give a slit on the top of the tomatoes and drop them into this water. Let it boil and cook for 5 minutes.
After this time, remove the tomatoes from the hot water and leave them aside to cool. After a few minutes you can peel off the skins, chop these boiled tomatoes and set aside.
Heat butter in a pan, add bay leaf, pepper corns and then the chopped onion, celery and fry for a few minutes. Add the tomatoes, fry for 2 minutes more. Then pour in 2 cups of water and bring it to a full boil. Now cover it with a lid and bring it to a full boil.
Remove from the fire and strain it through a strainer to remove the water, keep this water aside. Discard the bay leaf and let it cool, then blend it well to get a puree and again pass it through a strainer to get a smooth puree.
Now add the strained puree to the reserved water and adjust the consistency by adding more water for your need. Now put it on a stove, add salt, sugar and pepper powder (according to your taste) mix and bring it to a full boil.
Add the cream to the soup and give it a good stir, turn off the heat.