Heat oil in a saucepan and add all the whole spices like cardamom, cinnamon, peppercorns, and cloves. After a few seconds add chopped onion, grated ginger, grated garlic, and curry leaves. Saute till the onion turns light golden.
Add chopped tomatoes and fry till it melts and oil starts to separate.
Now add the chicken pieces and roast on high heat for 1 minute till the juices are sealed and the color has slightly changed. Reduce the heat and add turmeric powder, garam masala powder, green chilies, coconut milk, and salt.
Place the lid and cook on medium-low heat for about 20 minutes or till the chicken is fully cooked.
Finally, add chopped coriander leaves and lemon juice and simmer for 5 more minutes on low heat.
Serve hot with ghee rice, appam, or paratha.