Preheat your oven to 425°F (220°C). Toss cauliflower florets with olive oil, garam masala, turmeric, and salt on a baking sheet.
Roast the cauliflower for 25-30 minutes, flipping halfway through, until golden brown and tender.
While the cauliflower roasts, melt butter in a large pan over medium heat. Add onions and cook until softened, about 5-7 minutes.
Add garlic and ginger, cooking for another 2 minutes until fragrant.
Stir in tomato paste and cook for 1 minute to remove the raw taste.
Add diced tomatoes, spices, and salt. Simmer for 15 minutes, stirring occasionally.
Blend the sauce until smooth using an immersion blender or regular blender.
Return the sauce to the pan, add heavy cream, and simmer for 5 minutes.
Fold in the roasted cauliflower and cook for an additional 5 minutes to let the flavors meld.
Garnish with fresh cilantro and serve hot with naan or rice.