Roast the cauliflower: Preheat oven to 400°F (200°C). In a large bowl, toss the cauliflower florets with olive oil, cumin, coriander, turmeric, cayenne pepper (if using), salt, and pepper. Spread the cauliflower in a single layer on a baking sheet. Roast for 25-30 minutes, or until tender and slightly browned, flipping halfway through.
Make the sauce: While the cauliflower is roasting, heat olive oil in a large pot or Dutch oven over medium heat. Add the chopped onion and cook until softened, about 5 minutes. Add the minced garlic and grated ginger and cook for another minute until fragrant.
Add remaining sauce ingredients: Stir in the crushed tomatoes, coconut milk, rinsed lentils, garam masala, cumin, chili powder (if using), salt, and pepper. Bring the mixture to a simmer, then reduce heat and cover. Cook for 20-25 minutes, or until the lentils are tender. Stir occasionally to prevent sticking.
Combine cauliflower and sauce: Once the cauliflower is roasted and the lentils are tender, add the roasted cauliflower to the coconut tomato sauce. Stir gently to combine.
Serve: Serve the spice-roasted cauliflower and lentil stew hot, garnished with fresh cilantro and lime wedges, if desired.