Preheat oven to 400 degrees F (204 C) and line a baking sheet with parchment paper (or more baking sheets if increasing batch size). Add cauliflower and season with oil (or water), curry powder, and sea salt.
Toss to combine and bake for 15-20 minutes or until golden brown and slightly crispy on the edges. Set aside.
In the meantime, heat a large pot over medium heat. Once hot, add water or oil, shallot, ginger, and garlic. Sauté for 2 minutes, stirring frequently.
Add curry paste and stir to combine. Cook for 1 minute. Then add sweet potatoes, curry powder, and salt. Stir to coat and cook for 2 minutes uncovered.
Add tomatoes, coconut milk, and coconut sugar and stir to combine. Increase heat to medium high until it reaches a very low boil. Then reduce heat to low or medium low (until simmering). Cover and cook for 15-20 minutes or until sweet potatoes are tender. Stir occasionally.
In the last minutes of cooking, add lemon juice and stir. Then taste and adjust seasonings as needed, adding more salt for saltiness, curry powder or paste for intense curry flavor, coconut sugar for sweetness, or more lemon juice for acidity.
Remove lid and turn heat off so the mixture can thicken slightly. To serve, divide roasted cauliflower between serving plates and top with desired amount of curry. Fresh cilantro and lemon juice make an excellent garnish. This dish is great on its own, but it's also delicious with rice, cauliflower rice, or vegan naan.
Leftovers will keep covered in the refrigerator up to 4 days or in the freezer up to 1 month. Reheat on the stovetop over medium heat (or in the microwave) until hot and bubbly. Cauliflower and curry can be stored together.
*Nutrition information is a rough estimate calculated with oil instead of water, lesser amount of coconut sugar, and without sides or toppings. *Prep time does not indicate total hands-on prep time, but also includes prep completed while other items are cooking.