On a medium flame, heat oil in a deep pan. Add the whole spices - bay leaf, cinnamon, cloves & green cardamoms.
Stir in the chopped onions and chilies. Saute until deep golden in color, for 7 to 8 mins.
Add ginger garlic paste and saute till you get a nice aroma, for about a minute.
Then add tomatoes, turmeric and salt. Mix well and cook until the tomatoes turn soft & mushy.
Turn down the heat to low, Stir in the yogurt (or cashew paste), red chili powder, garam masala & coriander powder.
Cook on low heat, until the mixture smells good and aromatic.
Add chicken and coriander leaves. Fry on a medium heat till the chicken turns white or pale in color. This takes around 3 mins.
Cover and cook on a low heat for 3 to 4 minutes. This step is very important as the chicken absorbs all the flavors of the spices.
Meanwhile in a separate pot, heat up 1 cup water. Using cold water most times toughens the chicken so it is good to use hot water.
Pour hot water just enough (about ½ cup) to make a thick gravy. As you cook, chicken lets out plenty of moisture, depending on that add more water. Check the pictures in the post for consistency.
Cover and cook on a medium flame till the chicken is soft cooked and the curry/gravy turns thick. When the chicken is cooked completely it will fall off the bone easily.
Taste the curry & add more salt if needed. You can also add another ½ tsp garam masala at this stage if you feel it is less in flavors.
Lastly garnish with coriander leaves, cover and off the heat. Serve chicken curry with butter naan or jeera rice.