Dice a quarter of the red onion (½ cup) to make the curry paste. Slice the rest and set aside.
Place the diced red onion (½ cup), garlic, ginger, red chilies, maple syrup, lemon juice, curry powder, garam masala, turmeric, and salt in a blender or spice grinder. Blend into a smooth paste. Remove from the blender if used for tomato puree. Add a little water if the curry paste is too dry.
Combine the white beans, tomatoes, and vegetable broth in a blender or food processor.
Heat a Dutch oven or heavy-bottomed pot over medium heat. Cook the onions first. Stir them for 2-3 minutes until they start to soften.
Stir in the fresh vegetables: cauliflower, zucchini, and green beans. Cook the vegetables for another 3-4 minutes, then mix in the curry paste.
Add the tomato puree. Mix well. Adjust the heat so the curry is simmering. Cover and simmer for 15 minutes until the cauliflower is tender.
Stir the ingredients, then add the frozen peas (and other frozen vegetables if using), chopped cilantro, and tofu. Continue simmering for another 5 minutes.
Taste and adjust the spices or add more lemon juice if desired.