Place the chicken in a large bowl.Drizzle with the vegetable oil.
Sprinkle the curry powder over top and toss until the chicken pieces are coated. Set aside.
In a Dutch oven or large skillet melt 2 tablespoons of the butter over medium-low heat. Add the chopped onions and cook until they begin to caramelize, about 10 minutes.
Add the garlic and cook for 1 minute.
Add in the salt, cayenne pepper, gram masala, cinnamon and paprika and cook, stirring constantly, for an additional 1 minute.
Add the butter and cook until it has melted.
Stir in the crushed tomatoes then add the cream. Bring to a simmer.
Add the chicken to the sauce, cover and simmer for 30 minutes, stirring occasionally.
After simmering for 30 minutes, check a piece of the chicken to be sure that it is cooked through and no longer pink inside.
Serve over a bed of basmati rice garnished with cilantro or parsley.