First, bring 2 cups of water to a boil in a small saucepan. Stir in the basmati rice, then cover and lower heat. Steam until all the water is absorbed and the rice is fluffy, about 20 minutes. Set aside.
In the meantime, heat vegetable oil in a large pot over medium heat. Add diced onion and garlic, season with a pinch of salt, and sauté until onions are slightly softened, about 2 to 3 minutes.
Combine the kashmiri red chili powder, powdered ginger, garam masala, cumin, paprika, turmeric, and ground coriander in a small bowl. Sprinkle over the cooked onions and garlic, then stir to combine.
Next, add the crushed tomatoes, remaining 1 cup of water, and cauliflower florets to the pot. Stir to combine, then cover and cook until the cauliflower is tender, about 20 to 25 minutes, stirring occasionally.
Finally, remove from heat and stir in the heavy cream, butter, and fenugreek leaves. Serve immediately with steamed basmati rice and fresh naan.