Roughly chop fresh tomatoes. Keep aside along with all the juice.
Heat a heavy bottom soup pot. Melt oil and butter. Add chopped onion, garlic, peppercorn and bay leaf. Saute until onion has softened and garlic is aromatic. It will take around 2-3 minutes.
Add chopped tomatoes along with all its juice. Add 2 teaspoons of salt. Saute for 4-5 minutes.
Add tomato paste, stock/water. Cover and cook for 10 minutes. The tomato should be cooked soft and mushy.
Switch off the heat. Remove the bay leaf.
Using a hand blender blend it until smooth. If using a food processor make sure to cool it down before processing.
Run the blended tomato mixture through a colander. Discard the residual skin/seeds.
Clean the used pot or in a separate pot melt the remaining butter. Stir in the flour. Cook on low heat for minutes until the flour is not smelling raw anymore. Take care not to brown the flour.
Slowly add a ladle of the strained tomato mixture and keep stirring continuously. Add another ladle of the mixture while stirring with the other hand to avoid lumps.
Add the rest of the tomato mixture. Adjust the thickness by adding more water. Add sugar, oregano and salt (if required). (increase the amount of sugar as per taste to balance the tartness of tomatoes)
Let it simmer for another 8-10 minutes. Keep stirring in between to avoid the mixture getting stuck.
Serve the soup with a drizzle of cream or shredded parmesan or crouton.