Cut the boneless chicken pieces into small bite-sized pieces. Add yogurt, red chili powder, turmeric powder, salt, and black pepper. Mix well and keep aside for a few minutes.
Heat butter in a large pan over medium heat. Add the finely chopped onion and cook until soft and light golden.
Add the minced garlic and minced ginger. Stir for about 1 minute until fragrant.
Add the marinated chicken pieces to the pan. Cook for 5–7 minutes until the chicken starts turning golden and is mostly cooked.
Pour in the tomato puree and mix well. Let it cook for 3–4 minutes until the sauce thickens slightly.
Add garam masala and a little sugar. Stir everything together to balance the flavors.
Pour in the heavy cream and mix gently. Let the curry simmer for 2–3 minutes on low heat until creamy and smooth.
Taste the sauce and add more salt or black pepper if needed.
Turn off the heat and sprinkle fresh coriander leaves on top.
Serve hot with rice, naan, or bread.