Combine all of the ingredients for the chicken, except for the chicken and canola oil, in a large bowl. Add in the chicken and mix until it is well combined with the marinade. Refrigerate and allow it to marinate for at least 30 minutes.
Heat the canola oil in a large pan over medium heat. Add the chicken into the pan and cook until golden brown and fully cooked, about 4-5 minutes. Remove the chicken from the pan and set it aside.
In the same pan, melt the butter over medium heat. Add in the onion and sauté until it turns translucent. Stir in the tomato paste, grated ginger, garlic, garam masala, turmeric, chili powder, paprika, cumin, and cayenne pepper. Cook the onions with the spices for 1-2 minutes.
Then mix in the crushed tomatoes and chicken broth. Bring it to a boil then reduce the heat so that it is simmering. Simmer for about 10 minutes. Add in the heavy cream, lemon juice, and chicken. Mix to combine and cook for another 5 minutes until the chicken is heated through. Enjoy!