Heat the oil in a large saucepan over medium heat. Add onion and cook, stirring frequently, until soft and starting to brown, 3 to 4 minutes. Stir in ginger, garlic, garam masala, cumin, coriander and ¼ teaspoon salt; cook, stirring, for 1 minute. I usually add 1/4-1/2 cup of water here to keep it from sticking too much. Add tomato paste and cook, stirring for 30 seconds. Add another 1/4 cup of water if needed for consistency.
Stir in coconut milk and bring to a simmer. Cook, stirring occasionally, until slightly thickened, about 5 minutes. Remove it from the heat.
Puree the sauce with an immersion blender or in a regular blender until smooth (use caution when pureeing hot liquids).
Return the sauce to the pot, if necessary, and add chickpeas, lime juice and any additional salt per your taste. Sprinkle with cilantro.