In a large cast-iron skillet, melt the oil over medium heat. Add the cumin, coriander and red pepper and cook until fragrant, only about 1 minute. Add the onions and salt and stir to coat. Reduce the heat to medium-low and cook the onions, stirring occasionally, until they have caramelized, about 20-30 minutes.
Add the sweet potatoes and toss to mix with the onions and spices. Add water or broth and cover skillet with a lid. Let cook undisturbed for 15 minutes to allow sweet potatoes to steam. (You may still want to peek through the lid periodically to make sure that the liquid has not dried up and the bottom is not burning. If so, add more liquid and replace lid for remainder of cooking time.) At the end of 15 minutes, if the potatoes are not cooked through, put the lid back on and cook for another 5 minutes or so, adding more liquid if necessary. If there is still liquid in the pan remaining, simply remove the lid and allow it to cook off.
Just before eating, sprinkle with cilantro and serve with the toppings of your choice. Enjoy!