Melt the butter in a large deep skillet over medium heat. Add the onion and a pinch of the salt. Cook for 5 to 6 minutes, stirring often, until soft and lightly golden.
Stir in the garlic and ginger and cook for 30 seconds, just until fragrant.
Add the tomato paste, garam masala, cumin, coriander, turmeric, and chili powder. Cook for 60 to 90 seconds, stirring constantly, until the paste darkens slightly.
Pour in the crushed tomatoes and vegetable broth. Scrape up any browned bits and simmer for 5 minutes.
Stir in the drained chickpeas and remaining salt. Simmer uncovered for 8 to 10 minutes, stirring occasionally, until the sauce is thick and coats the chickpeas. Add a splash of broth if needed.
Reduce the heat to low. Stir in the cream and warm gently without boiling. Add the lemon juice, taste for seasoning, and garnish with cilantro. Serve with rice or naan.