Heat butter in a large pan over medium heat.
Add chopped onion and sauté until golden brown.
Stir in minced garlic and grated ginger; cook for 1 minute.
Add diced chicken and cook until browned on all sides.
Pour in canned tomatoes, garam masala, and cumin; stir well.
Simmer for 15 minutes, allowing flavors to meld.
Stir in heavy cream and season with salt and pepper.
Cook for an additional 5 minutes until heated through.
Garnish with fresh cilantro before serving.
Serve hot with rice or naan.