Prepare the chicken by cutting it into bite-sized pieces and seasoning lightly with salt and garam masala.
In a large skillet, melt 2 tablespoons of butter over medium heat, then add the chicken.
Cook the chicken until browned on all sides but not fully cooked. Remove from the skillet and set aside.
In the same skillet, add the remaining butter and sauté the onions until translucent, about 5-7 minutes.
Add the garlic and ginger, cooking for another minute until fragrant.
Stir in the cumin and garam masala, cooking briefly to toast the spices.
Pour in the crushed tomatoes and bring to a simmer, allowing the mixture to thicken slightly, about 5-10 minutes.
Add the browned chicken back into the skillet, stirring to coat with the sauce, and let simmer for 10 minutes.
Lower the heat and stir in the heavy cream, mixing until combined and the sauce is silky.
Season with additional salt if necessary, and cook for another few minutes to let the flavors meld together.
Serve hot, garnished with fresh cilantro, alongside rice or naan.