Rinse the chickpeas with water, then soak it in about 3 cups of water overnight.
Next morning, drain the water and rinse the chickpeas once again. Pressure cook the chickpeas with a little salt on medium heat, for about 7- 10 whistles or until done, It should be soft when you try to mash it with your fingers.( Skip if using canned ones)
Heat oil in deep bottomed pan/kadai, saute the onions until they are translucent and caramelized.
Let the sauteed onions cool. Now in your electric mixer/grinder, make a smooth paste of these onions with coconut, cilantro, garam masala, and fennel seeds, using water (little more than 1/4 cup of water).
Heat oil in a deep bottomed pan on medium-low heat, add mustard seeds, Once they splutter add curry leaves and green chillies if using.
Immediately add the above ground paste, and saute for about 5 minutes until the masala oozes out oil.
Now add the chopped tomatoes, and cook for another 5 minutes until the tomatoes are mushy.
Add the boiled chickpeas, and coat it gently with the masala mixture.
Rinse the grinder jar with about 1 and 1/2 cup of the chickpeas stock water, (add water if using canned ones) and add it to the pan. Crank up the heat to high, give everything a good stir, add more salt if required (since salt is already added whilst pressure cooking the chickpeas, so add accordingly) let it come to a boil, then reduce the heat to low , and let it simmer and thicken to achieve the desired thickness of the gravy (about 10 minutes)
Serve with hot steamed rice/pulao/ chapati or any flatbread.