In a large skillet, heat the olive oil over medium heat. Once hot, add the diced onions and cook until translucent, about 5 to 7 minutes.
Add the unsalted butter to the skillet and let it melt completely. Stir in the grated ginger and minced garlic, cooking for about 30 seconds until fragrant.
Cooking
Add the diced chicken breasts to the skillet. Cook, stirring occasionally, until the chicken is no longer pink on the outside, about 2 minutes.
Sprinkle the garam masala, chili powder, salt, and black pepper over the chicken. Stir well to coat.
Pour in the tomato sauce, tomato paste, lemon juice, yogurt, and half and half. Stir to combine and bring to a simmer.
Allow the sauce to simmer for about 10 minutes until it reduces and thickens slightly. Stir occasionally.
Serve the butter chicken hot over a bed of rice. Garnish with cilantro and enjoy with warm naan.
Notes
For extra flavor, marinate the chicken in yogurt and spices for a few hours.
Always use fresh ginger and garlic for best flavor.
Adjust sauce consistency with water or extra half and half.