Heat the oil in a large pan on medium heat. Add the onion and stir occasionally for 6-8 minutes (or until soft and starting to turn golden).
Next, add the finely chopped garlic, ginger, and chilli and cook for a couple of minutes.
Once those have softened, add all the dried ground spices (cumin, coriander, garam masala, chilli powder, and turmeric) and mix well.
After a couple of minutes, stir in the tomato puree, chopped tomatoes, bay leaves, and salt. Cook for 5 minutes to allow the ingredients to blend together.
At this point, you have the option to thicken the curry and make it a little smoother. Pulse a few times using a hand blender, or mash through the sauce using a potato masher. Temporarily remove the bay leaves and any additional whole spices you might have added (see notes), adding these back in once you're done.
Next, add in the drained chickpeas along with 100 ml of water. Stir well and cook for 10-15 minutes. If you want to loosen the sauce, add a little more water.
After 10-15 minutes, add the lemon juice, stir in the freshly chopped coriander, adjust the seasoning, and then serve.