Marinate the chicken.
Combine the chicken thighs with yogurt, ginger, garlic, turmeric, coriander, garam masala, and salt. Cover and refrigerate for at least 30 minutes.
Cook the onions.
Heat the ghee or oil in a large, heavy-bottomed pan over medium-low heat. Add the sliced onion and cook slowly until soft and golden.
Add the aromatics and spices.
Stir in the garlic and ginger and cook until fragrant. Add the cumin, coriander, turmeric, cardamom, and garam masala. Cook for about 1 minute, stirring constantly.
Add the chicken.
Add the marinated chicken to the pan and cook for several minutes, turning the pieces to coat them well in the onion and spice mixture.
Simmer the korma.
Add the ground almonds or cashews and chicken stock or water. Reduce the heat, cover partially, and simmer gently until the chicken is cooked through and the sauce has thickened.
Make it creamy.
Lower the heat and stir in the yogurt and heavy cream. Cook gently until the sauce is smooth and creamy. Avoid bringing it to a rapid boil.
Finish and serve.
Taste and adjust the salt. Add a little extra garam masala if desired, then stir in the fresh cilantro. Let the korma rest for about 5 minutes before serving.