Combine chicken chunks, yogurt, red chili powder, and ginger-garlic paste in a bowl. For at least an hour, let it marinate.
In a pan, heat the oil over medium heat. Cook the chicken that has been marinated until it is fully cooked and browned. Eliminate and place aside.
Add the butter to the same pan. After it has melted, add the finely chopped onions and sauté them until fragrant and golden brown.
Add more ginger-garlic paste and cook, stirring, for a minute more, so that the raw taste disappears and the flavors meld.
Add salt, coriander powder, garam masala, and pureed tomatoes. Simmer the mixture until it becomes thick and the oil begins to separate from the gravy.
Blend the gravy until it's smooth using a blender. The butter chicken gets its rich, creamy texture from this step.
Add the cooked chicken and fresh cream and stir. For a complete dinner, garnish with cilantro and serve hot with rice or naan.