Wash the chickpeas and soak in enough water for about 8 hours or overnight for best results.
Once the soaking is done, discard the water used for soaking and rinse the chickpeas again in fresh water for one to two times.
Transfer the washed chickpeas to a large sized pressure cooker, I used my pressure cooker which is 6 quart.
Wash and peel the onion, slice in thin long slices. Add the chopped onions also to the pressure cooker.
Make a puree of tomatoes and green chilies by adding the tomatoes, green chilies (if using) and also the 4 cups of water in a blender and blend until smooth.
Transfer the tomato puree to the pressure cooker, mix everything well.
Also add the cilantro leaves (if using) and also add all the spice powders - garlic powder, turmeric powder, red chili powder, coriander powder, cumin seeds powder and garam masala powder, mix everything well.
Close the pressure cooker with lid and safety valve in position and once the steam begins to release, cook in medium heat for about 10 to 12 minutes or until 4 whistles come.
Once the cooking is done, switch off the stove and wait for the pressure cooker to cool down completely for safety reasons (this takes around 15 minutes average). Once the pressure cooker is cooled enough, open the cooker very carefully and add the washed spinach leaves.
Mix everything well and simmer the dish for another 2 to 3 minutes or until the desired thickness for the gravy is reached. In case you want more liquid like consistency, you may also add little more water and heat the contents for a couple of minutes.