Marination: Combine all the marination ingredients in a large mixing bowl and perfectly marinate the chicken. Set it aside for 15 minutes.
Preparing The Curry: Take a large pan, add oil, and sauté the onion until golden. Toss in the garam masala and stir for a minute. Add garlic, chillies, tomatoes, and a splash of water. Stir and simmer for 2 minutes.
Blend The Curry: Now transfer this masala (curry) to the food process and blend it well. This will give us a thick paste that helps us to thicken the curry.
Fry The Chicken: Add the butter in a pan, and fry it in it for 10 minutes. Stir and cover the lid during this process. Now, transfer the chicken to another pot and set aside.
Combine Everything: In the same pan again, melt the butter, add a splash of oil, and blend gravy. Stir and simmer for 2 minutes. Then add all the ground spices and chicken. Stir it well so that spices get perfectly into the chicken. Simmer for 3 minutes on medium flame.
Garnishing: Finally, sprinkle some sesame seeds, cilantro, and green chilies. And our Butter chicken is now ready to serve.