Heat oil over medium heat in a large pot. Add onion and cook for 5 minutes until translucent and lightly browned, stirring regularly.
Add ginger and garlic and cook for an additional 1 minute. Add cumin, coriander, turmeric, salt, and cayenne, cook for about 30 seconds.
Pour in vegetable broth and stir vigorously to deglaze the pan.
Reduce heat to medium-low and add tomatoes and sugar, then bring to a simmer and cook for 20 minutes.
Using an immersion blender, puree the soup, then add coconut milk and serve. (If you don't have an immersion blender, blend in batches using a blender.)
Just before serving, stir in lime juice.