Preheat oven to 425°F (220°C). Toss cauliflower florets with 1 tablespoon olive oil, garam masala and a pinch of salt. Spread on a baking sheet and roast 15-20 minutes, until golden and slightly crisp at the edges.
To make the sauce, heat olive oil in a large skillet or saucepan over medium heat. Add onion and sauté for 8–10 minutes, until golden brown. Add garlic and ginger, and cook 1 minute until fragrant.
Sprinkle in cumin, coriander, garam masala, turmeric, paprika, chili powder and salt. Toast the spices for 30 seconds to bloom their aroma.
Stir in chopped tomatoes and simmer for 5 minutes, stirring occasionally.
Meanwhile, in a blender combine soaked cashews and coconut milk. Blend until completely smooth and creamy. Pour into the skillet along with ½ cup water or broth.
Stir the sauce well and bring to a gentle simmer for 8–10 minutes, until thick and rich. Add roasted cauliflower and simmer 5 minutes more, coating it in the sauce.
Taste and adjust salt or spice. To finish it off, stir in a squeeze of lemon juice, garnish with fresh cilantro and serve hot with basmati rice or vegan naan.