Preheat the oven to 425°F. Drizzle a rimmed baking sheet with oil and spread the cauliflower out in a single layer; drizzle with a little more oil and toss the cauliflower around with your hands to coat the pieces. Roast for 10-15 minutes, until tender and golden on the bottoms and edges.
Meanwhile, heat a generous drizzle of oil in a large, heavy skillet. Add the onion and cook for a few minutes, until starting to soften. Add the ginger, garam masala, cumin, chili powder and salt and cook for a minute, then add the tomatoes and potato. Stir to combine everything well, pour 1/2 cup water over top and cover with a lid; reduce the heat to medium-low and cook until the sweet potatoes are tender - about 7 minutes.
Add the roasted cauliflower to the pan and stir to combine everything well. Serve immediately, as is, with rice or naan.