Chop cauliflower into florets and mix with the listed marinade ingredients. Broil on high for 7-8 minutes, until it is cooked, but still crunchy.
Heat oil in a large pan over medium heat. Add the finely chopped onions. When it is translucent, add ginger and garlic. Stir for a few minutes while you add all the spices to a small bowl.
Add the spices all at once, making sure that they combine with the onion, ginger, and garlic rather than sticking to the bottom of the pan.
After a minute, add the tomato paste, chopped tomatoes, and salt. Stir it every now and then. Cook for 7-8 minutes total, or until the tomato juices have mostly evaporated and everything in the pan stays together.
Add coconut milk and water, and increase heat to medium-high to bring the curry to a simmer. After the curry simmers for 5 minutes, add the cauliflower (and chickpeas if you are using canned chickpeas), reduce heat to low, and cover. After another 5 minutes (when the cauliflower is tender but has a crunch), add the chickpeas. Continue to simmer on low for 5 more minutes.
Take it off the heat and serve! Though it does taste better the next day ;)