Heat oil or butter in a large pan over medium heat. Add the chopped onion and sauté until translucent.
Add the minced garlic and ginger, and cook for another minute until fragrant.
Stir in the garam masala, ground cumin, ground coriander, and optional cayenne pepper. Cook for about 30 seconds until spices are aromatic.
Add the tomato sauce and bring to a simmer. Cook for about 10 minutes, stirring occasionally.
Add the chickpeas to the sauce, stir, and let simmer for 5 minutes.
Stir in the heavy cream and let it simmer for an additional 5 minutes. Adjust the seasoning with salt and black pepper.
Garnish with fresh cilantro before serving. Enjoy!