In a large pan, melt 1 tablespoon of butter over medium heat. Add the chicken cubes and cook until browned. Remove and set aside.
In the same pan, melt the remaining butter. Add the chopped onion and sauté until softened, about 5 minutes. Stir in the garlic and ginger and cook for another minute.
Add garam masala, cumin, turmeric, chili powder, and paprika. Stir to combine, then add the tomato paste and crushed tomatoes. Simmer for 5-7 minutes.
Return the chicken to the pan, add yogurt and heavy cream, and simmer for another 10-15 minutes until the sauce thickens and the chicken is cooked through.
Garnish with fresh cilantro and serve with rice or naan.