Grate ginger and garlic then mix with ground spices and salt.
Cut the chicken up into pieces. Rub salt in.
Mix half of the spice mixture with yogurt and the chicken pieces. Marinate the chicken in the fridge for 4 - 24 hours.
Sauce
Heat ghee to medium high then sauté (stir fry) diced onion, cardamon and optional chilly until glassy / translucent look.
Mix in the other half of the spice mixture then sauté until darkens, about 5 minutes.
Add tomato puree, red pepper flakes if any used then place the lid on and bring it to boil. Reduce heat, take lid a bit off and simmer on low heat until sauce thickened, about 30 - 40 minutes.
Add cream and cilantro.
Chicken
Skillet
Heat ghee or oil to high and sear at least two sides of the chicken until golden brown.
Oven
Stick the chicken pieces onto skewers.
Roast them under the highest setting of the broiler until golden brown spots start to appear.
Assembly
Mix the chicken pieces into the sauce.
Bring it to boil then simmer for 10 minutes so the meat completely cooks through.
Let it cool off a bit before serving.
Serve it traditionally with rice or go berserk and serve it with gnocchi or ricotta gnocchi.