Preheat the oven to 425°F. Spread the cauliflower florets on a baking sheet, toss with 1 tablespoon of the butter melted, and season with salt. Roast for 20 minutes until the edges turn golden.
Melt 2 tablespoons butter in a large skillet over medium heat. Add the chicken pieces and cook until lightly browned on all sides, about 6 minutes. Remove the chicken to a plate.
Add the remaining tablespoon of butter to the same skillet. Cook the onion for 4 minutes until softened. Stir in the garlic and ginger and cook for 1 minute more.
Add the garam masala, cumin, paprika, and turmeric. Stir for 30 seconds until fragrant. Pour in the tomato sauce and bring to a simmer.
Return the chicken to the skillet. Stir in the heavy cream and simmer gently for 8 minutes until the chicken is cooked through and the sauce thickens. Season with salt and pepper.
Serve the butter chicken with the roasted cauliflower on top or on the side. Add warm naan and sprinkle with chopped cilantro.