Heat the oil in a large pot or wok. When the oil is hot, add the onions and stir fry for 2 or 3 minutes. Add the cinnamon, peppercorns, cardamom and cloves and continue to stir fry until the onion is golden. Add the garlic and ginger pastes and stir another minute. Mix in the chopped tomatoes.
Stir in the chili powder, salt, turmeric and ground coriander seeds, and continue to stir fry until the oil starts to separate. Add the cubed meat and fry until all sides are browned. Add 250 ml water and mix well.
Cover and simmer until the meat is tender adding more water if necessary. Add the potatoes, 500 ml water, re-cover and simmer until the potatoes are almost cooked. Add the fresh chilis and then the yoghurt (if used),1 tablespoon at a time. When the potatoes are cooked, sprinkle on the coriander leaves and serve.