Heat oven to 230°C / 450°F and line a baking sheet with parchment paper.
In a saucepan, bring water to a boil. Stir in rice and salt and return to a boil over medium-high heat.
Reduce heat to a simmer, cover, and cook until rice is tender and has absorbed all liquid, about 20 minutes.
Remove from heat and let steam, covered, for 10 minutes.
In a large bowl, combine cauliflower, salt, black pepper, garam masala, cumin and olive oil.
Pour the seasoned cauliflower onto prepared baking sheet and place in preheated oven. Roast until cauliflower is golden and just tender, about 10 to 12 minutes. Set aside.
In a large skillet over medium heat, heat butter and olive oil. Add onion and cook until translucent. Add garlic and cook for about 30 seconds, stirring often.
Add cumin, salt, ginger, cinnamon, turmeric, garam masala and paprika. Cook for approximately 1 minute, stirring often.
Add tomato sauce, reduce heat to low and allow sauce to thicken for about 5 to 7 minutes, stirring often.
Add cream and sugar and bring sauce to a low boil. Cook over low heat, until sauce has thickened a bit more, about 8 to 10 minutes.
Add the roasted cauliflower to the sauce, stir well. Fluff rice with a fork and serve with tikka masala.