Soak the cashews & poppy seeds (if using) in 2 tbsp hot water.
Heat oil & add cardamom, cloves, cinnamon & fennel seeds. Add finely sliced onion & cook till it becomes brown color.
Add crushed ginger & garlic. Cook for a few minutes. Add chili, coriander, turmeric, fennel & pepper powder. Mix well & cook till the raw smell goes, around 2-3 mins.
Add sliced tomatoes, salt, curry leaves & give a stir.
Add chicken pieces. Mix well. Make sure the chicken pieces are coated with the masala.
Add water (1.5 - 2 cups), bring it to boil. Reduce flame, cover and cook till chicken is almost done (about 75 %).
Grind the soaked cashews & poppy seeds & coconut with enough water to get a smooth paste.
Add this paste to the curry when the chicken is almost done. Mix well. Cook for 3-4 mins.
Add coconut milk (if using) & combine well. Cook for 2 more mins. Add chopped coriander leaves & remove from fire.
Serve with pulao, rice, roti, appam etc;
Notes
If you dont have poppy seeds, increase the qty of cashews a bit and continue the same process. The gravy tends to thicken as the curry rests. Because of the coconut cashew paste, the curry has a thick consistency. If you prefer more gravy, add coconut milk. However it also depends on the type of chicken. Some chicken tends to have more fat, in that case its better not to add coconut milk.