Combine cumin, garam masala, turmeric, paprika, minced ginger, minced garlic, and cayenne pepper (see note 1). Stir together and set aside.
Trim the fat and cut the chicken into 1-inch pieces and place in a large bowl or bag. Add yogurt, lemon juice, salt, and half of the spice mix. Stir to coat, or knead if using a bag. Cover the chicken tightly, or seal the bag, and refrigerate for at least 30 minutes. Do not marinate longer than 24 hours.
Add butter to a large pan and heat over medium heat. Add in diced onion and cook for 7–10 minutes, stirring occasionally. Reduce the heat if it begins to burn. Add in the reserved half of the spice mix and 1 tablespoon tomato paste. Stir for 2–3 minutes or until very fragrant.
Push onion and spices to the edges of the pan and add chicken to the center. Remove chicken from the marinade, but don't clean any remaining marinade off the chicken. Cook over medium-high heat for about 3–4 minutes, or until the chicken is white on the outside, but not cooked through. Stir often and incorporate the spices and onion into the chicken as you cook.
Once the chicken is white all over, add in can of fire-roasted crushed tomatoes, heavy cream, sugar, and 1 teaspoon salt. Stir, and reduce the heat to low. Simmer 15–20 minutes or until chicken is cooked through to 165° and sauce has thickened. Stir in some optional chopped cilantro here.
Serve curry over cooked basmati rice (see note 2) and garnish with additional cilantro leaves. Serve with flatbread, roti, or naan.
Notes
Note 1: You can omit cayenne entirely if you're very sensitive to spice. If you'd like some heat in this butter chicken, you can increase up to a full teaspoon.Note 2: Here’s how I cook the basmati rice:
Measure the rice and rinse it in a fine-mesh sieve until the water runs clear.
Place that rice in a bowl and cover it with water to soak for about 5–10 minutes.
While the rice is soaking, fill a large pot with water and set it to boil.
Once the water is at a rolling boil, drain the rice and add it to the pot.
Cook without reducing the heat, for 5 minutes. Taste to ensure the rice is tender; add another minute if not. Drain and fluff with a fork.
Note 3: If using chicken breast instead of thighs, cook completely through at this point and then remove from the heat onto a plate and cover with foil. Only add the chicken breast back into the curry to warm through in the last minute of cooking the curry sauce. Otherwise, the chicken breast will be too dry.Storage: Store butter chicken in an airtight container in the fridge for up to 3 days. Reheat gently on the stovetop or in the microwave until warmed through.