To start with, soak cashewnuts in hot water for 10 minutes. Also rub turmeric powder all over the chicken. Set both things aside.
Heat a tablespoon of ghee in a pan, and add the onions. Sprinkle 1/2 teaspoon salt over the onions and mix. Reduce the flame, cover and cook the onions till they are deep brown in color. During the process of browning the onions, stir them around every 5-6 minutes to prevent them from sticking to the bottom and burning. This whole process of caramelizing the onions should take about 20 minutes.
Once the onions are brown, transfer them to a food processor along with the soaked cashew nuts, garlic cloves, ginger, green chilies and 1/4 cup water. Grind to a smooth paste.
Heat the remaining ghee in the same pan, and add cardamom pods, bayleaf, cloves and cinnamon. Saute for a minute or two and add the onion paste. Cook the onion paste on medium high heat, while stirring occasionally for 4-5 minutes. Add coriander powder, chili powder, garam masala powder and salt and saute for another 2-3 minutes.
Add chicken to the pan along with 1/4 cup water. Cover and cook the chicken for 20 minutes or till cooked through, while stirring the curry occasionally. This will be a thick gravy, but if you like your thinner, feel free to add a little water and bring the curry to a boil.
Taste for seasoning, and finish it up by stirring in the cream. Switch off the flame. Let the curry sit for 10 minutes before serving with parathas and jeera rice.