Heat oil in a heavy-bottomed pan and add in whole spices one by one.
As soon as they begin to sizzle, add in grated onions, and fry for 3-5 minutes on medium heat till onions turn translucent.
Add in ginger-garlic pastes and sauté for another minute or two till it turns fragrant. Keep sauteing it on low heat till onion mixture turns dark brown.
Add in all the masalas and tomato puree, and fry for a couple of minutes. Once the mixture is blended well add in the marinated chicken.
If the chicken masala starts to dry out and stick to the bottom of the pan, add in a tablespoon of water.
Mix well, once the chicken starts to get bhunoed well, add in water to make gravy depending on the consistency you prefer.
Transfer this whole into a pressure cooker. Once the gravy starts to boil, close the lid of cooker.
Cook covered for about 2 whistles on high flame first and then lower the flame. Let it simmer for 5 to 7 minutes on low heat till chicken is completely cooked through.
Once the pressure is released, open the lid and transfer this curry in a serving bowl.
Garnish with fresh chopped coriander leaves and serve hot with rotis or rice, and a salad.