Preheat the oven to 425°F (220°C). Toss the diced sweet potatoes with a little oil, salt, and pepper, and spread them on a baking sheet. Roast for 18–22 minutes, until tender and lightly caramelized.
Meanwhile, heat a large skillet or wide pot over medium heat. Add the oil, then sauté the onion for 3–4 minutes until translucent. Add the garlic and ginger and cook for another minute until fragrant.
Stir in the Thai red curry paste and cook for 1–2 minutes to release its aroma. Pour in the coconut milk and vegetable broth, stirring to create a smooth sauce.
Add the red and yellow bell peppers and simmer the curry gently for 5–7 minutes, just until the peppers start to soften.
Gently nestle the salmon portions into the curry, spooning some sauce over the top. Cover and cook for 6–8 minutes, until the salmon is just cooked through and flakes easily. If you prefer a firmer texture, check a minute earlier.
Stir in the roasted sweet potatoes, spinach or basil, lime juice, fish sauce (if using), and a pinch of sugar. Taste and adjust with salt or lime as needed.
Remove from heat and let the curry rest for a couple of minutes for flavors to meld. Serve over rice, with lime wedges on the side.