Heat the oil over low heat in a heavy-based saucepan and fry the onion, bay leaves, cinnamon and peppercorns until the onion is soft. Add the cumin, garam masala and the tomato, mashing the tomatoes with a fork to break them up. Add the sugar and stock and slowly bring to the boil. Simmer over low heat for 30 minutes.
Strain the soup by pushing it through a sieve, using the back of a me