Marinate chicken with chilli powder, salt, turmeric, pepper and garam masala. Keep aside until you prepare the rest.
Skip this section if you have garam masala. On a low flame dry roast coriander seeds, cloves, cinnamon, cardamom, pepper and red chilies until they begin to smell aromatic.
Remove them to a plate and roast fennel seeds along with cumin until both turn aromatic.
Add these to a grinder or spice jar and make a fine powder. Pour 2 to 3 tablespoons water and blend to a smooth paste. Keep this aside.
Heat 1½ tablespoon coconut oil in a pan. Add onions and fry till they turn golden.
Add ginger garlic paste and fry till the raw smell goes away, for 1 to 2 mins.
Transfer the marinated chicken and fry on a slightly high flame till it turns white in color, for about 3 to 4 mins.
Then add the ground spice mixture & mix well. Cover and cook on a low flame till the chicken is slightly tender. Keep stirring in between for even cooking.
Optional - If using tomatoes, then add at this stage and saute further until the tomatoes loose the raw flavor.
If the pan is too dry, pour ¼ cup hot water. This depends on how much moisture your chicken releases. I did not use additional water, the moisture in the chicken and was enough to cook.
Once the chicken is tender, pour the coconut milk. Mix well. If using canned coconut milk, shake it well and then use.
When the coconut milk begins to bubble cover and simmer for 5 mins. Taste test and add more salt.
Heat a small pan with coconut oil and fry onions till they turn pink. Then add curry leaves and red chili. When the leaves turn crisp, remove and pour this over the Kerala Chicken Curry.
Serve it with ghee rice, coconut rice, appam, parotta or with chapati.