Heat the ghee in a deep skillet or pot over medium flame. Add the onion, curry powder, and ginger; cook and stir for a few minutes to soften the onion. Add the tomatoes and cook, stirring, until the tomatoes break down and soften, about 6 minutes. Mix in the cauliflower, chickpeas, tomato paste, and 1 cup of water; stir everything together. Reduce the heat to medium-low, cover, and simmer until the cauliflower is tender, about 15 to 20 minutes. Uncover, and continue cooking until the excess moisture has evaporated and the cauliflower and chickpeas are coated with a thick gravy. Season with salt, to taste, and garnish with cilantro before serving.
Put the butter in a heavy saucepan over moderate heat, swirl the pot around to ensure that it melts slowly and does not sizzle or brown. Increase the heat and bring the butter to a boil. When the surface is covered with foam, stir gently and reduce the heat to the lowest possible setting. Gently simmer, uncovered, and undisturbed for 45 minutes, until the milk solids in the bottom of the pan have turned golden brown and the butter on top is transparent. Strain the ghee through a sieve lined with several layers of cheesecloth. The ghee should be perfectly clear and smell nutty; pour into a glass jar and seal tightly.
Toast the whole spices (coriander, cumin, fennel, cloves, mustard, cardamom and peppercorns) and the chiles in a small dry skillet over medium-low heat, shaking the pan often to prevent them from burning. Toast for a couple of minutes until the spices smell fragrant. In a clean coffee grinder, grind the toasted spices together to a fine powder. Add the turmeric and give it another quick buzz to combine. Use the spice blend immediately, or store in a sealed jar for as long as 1 month.