Marinate. Combine marinade ingredients together in a large resealable bag. Add the chicken (2 pounds) and massage to coat. Allow chicken to marinate for 3 hours - overnight.
Broil. Adjust your oven rack so that it's around 10 inches from the top. Preheat your oven to broil and line a baking sheet with parchment paper and an oven-safe wire rack. Place chicken in a single layer on the rack, and broil for 9-11 minutes. Rotate your baking sheet halfway through. You'll know the chicken is done once there are black spots on top, but it won't be cooked all the way through.
Sauce. Meanwhile, add oil (¼ cup) to the pan. Once shimmering, add the onion (3 cups) and saute until softened - about 5 minutes. Add the garlic (1 ½ tablespoons) , ginger (1 tablespoon) , and saute until fragrant, about 2 minutes. Add the garam masala (2 tablespoon) and toast for 1 minute. Add the diced tomatoes (1 - 14 ounce) and salt (1 teaspoon) and stir to combine. Bring contents to a simmer and allow them to thicken for about 10 minutes. Stir in the cream (¾ cup) and lime juice (1) .
OPTIONAL (for a smoother sauce, I much prefer it this way): place sauce ingredients in a blender, or use an immersion blender and blend until completely smooth. Return back to the pan.
Simmer + Serve. Add the chicken and any juices that have accumulated on the plate to the sauce. Maintain a simmer with the sauce, and continue to cook until the internal temp of the chicken reaches 165 F, about 10 minutes. Serve over rice or cauliflower rice with cilantro on top, and enjoy!