Trim the chicken breast fillets of membranes and any bones, and cut into 2-3 cm pieces. Rub with the grated ginger and garlic, and season with salt, pepper, and garam masala. Drizzle with lemon juice and olive oil, then place in a bowl. Add the yogurt and mix thoroughly. Cover and refrigerate for at least 2 hours, preferably overnight. Cover the cashews with water and also leave to soak overnight.
Remove the chicken from the fridge and let it come to room temperature. In a pot, heat a tablespoon of ghee and sauté the chopped onion until translucent. Add the spices and cashews and fry briefly, stirring, then add the tomatoes and stock. Stir, bring to a boil, and simmer covered over low heat for about 10 minutes. Blend into a smooth sauce using a stand blender.
Meanwhile, heat the second tablespoon of ghee in a skillet and sear the marinated chicken pieces. Transfer the seared chicken to the blended sauce and bring everything to a boil. Temper the cream (first stir in a few tablespoons of the hot sauce), then pour it all into the pot with the sauce and chicken and mix. Cook for another 3 minutes over low heat. Serve with rice and cilantro.