Place the cauliflower, carrots, green beans and potatoes in a large saucepan. Add half a cup of water, bring to a boil, cover and cook for five minutes. After five minutes, add the green beans and bell peppers and continue cooking another five minutes or until potatoes are tender. Drain and remove to a bowl. You can reserve the cooking water and use it as a stock instead of water later in the recipe.
Place the onion in a saucepan, cover with water, bring to a boil, cover and cook for 10 minutes. Drain the onion, put it in a blender, and make a smooth paste.
Crush the garlic, ginger and green chili peppers, preferably with a mortar and pestle (or food processor is fine). Set aside.
Blend half the cashews (1/4 cup) into a very smooth paste in the blender with 1/2 cup water)
In a large saucepan (you can use the one you cooked the veggies in), add 1 tbsp of oil and add the cinnamon stick, cloves, cardamom and peppercorns. Saute for a minute until they start to change color and become fragrant.
Lower the heat and add the onion paste. Continue cooking for another 7-8 minutes, stirring frequently to keep the paste from sticking to the bottom of the pan.
Add the crushed ginger-garlic-green-chili-pepper paste and saute another minute. Now add the cashew paste and the yogurt, mix, and continue cooking for another five minutes. Stir frequently to avoid sticking.
Add all of the cooked vegetables and tofu. Mix well and add a little more water if needed (you can use the reserved water from cooking the vegetables as needed). You want the gravy to be thick enough to coat the veggies, and not too runny. Add salt to taste.
Let the korma come to a boil and cook another five minutes for all of the flavors to blend. Turn off the heat.
In a small saucepan, heat the remaining 1/2 tbsp oil and add the remaining 1/4 cup of cashews and raisins. Stir-fry until the raisins become puffy and the cashews start to become golden.
Pour the cashews and raisins into the korma, sprinkle on the garam masala powder, stir once to mix, and serve.