1. Boil the sweet potato in salted water until tender, about 15 minutes, then drain well and cool to room temperature.
2. Add the oil to a pan preheated over medium, and add the onion, cooking while stirring often until the onions have caramelized, about 20 minutes. Remove from the heat to cool.
3. Puree the sweet potato, caramelized onion, yoghurt, lemon juice and chili powder until smooth and then season to taste, adding hot sauce if you wish. Chill until ready to serve with crackers, naan or pita, or crudité.
4. The dip will keep refrigerated for up to 5 days.