Start by soaking the dried chickpeas overnight in plenty of water. The next day, drain and rinse them before boiling in a large pot of fresh water for about 1-1.5 hours, or until tender. You can also use canned chickpeas for a quicker option—just rinse them well before using.
In a dry skillet over low heat, toast the black cardamom pods, cinnamon stick, black peppercorns, cloves, bay leaf, star anise, cumin seeds, coriander seeds, and fennel seeds until fragrant, about 5-7 minutes. Be careful not to burn them! Once toasted, allow to cool slightly before grinding them into a fine powder using a spice grinder.
In a large skillet or Dutch oven, heat 2 tablespoons of oil over medium heat. Add the diced onions and sauté until golden brown, about 8-10 minutes. Stir in the minced garlic and grated ginger, cooking for an additional 2-3 minutes until fragrant.
Next, add the diced Roma tomatoes and serrano pepper to the skillet. Cook until the tomatoes soften and break down, about 5-7 minutes. Stir in the turmeric, chili powder, and the freshly ground chana masala powder. Mix well and let it cook for another minute to bloom the spices.
Once the spices are aromatic, add the boiled chickpeas to the skillet, along with 1 cup of water. Stir well to combine all the ingredients. Let the mixture simmer for about 15-20 minutes, allowing the flavors to meld together.
Before serving, stir in the garam masala and lemon juice. Adjust salt to taste and garnish with freshly chopped cilantro. Serve warm with rice or your favorite bread.