Heat oil in a large heavy-bottomed pan and add in whole spices and cumin seeds. As soon as they begin to sizzle, add in chopped onions, and fry for 3-5 minutes on medium heat till onions turn pink and tender. Add in ginger and garlic pastes and sauté for another minute or two till fragrant.
Add in spices and tomato paste, and fry for a couple of minutes to blend well. If it starts to dry out and stick to the bottom of the pan, add in a splash of water.
Mix in chopped tomatoes and salt, and cook for a few minutes till the tomatoes pulp and starts to release oil around the sides of the pan. Add in the chicken, mix well and cook covered on low heat for 3-4 minutes.
Once the chicken starts to give out its own moisture, slowly stir in beaten yogurt forming a smooth gravy base. Feel free to add in more water depending on the consistency you prefer. Cook covered for 10-12 minutes on medium-low heat till chicken is completely cooked through. Garnish with fresh chopped coriander leaves and serve piping hot with a side of rotis or rice, and a salad.