Heat olive oil over medium heat in a large pot.
Add yellow onion and cook, stirring regularly for about 5 minutes. It will turn just translucent and lightly browned.
Add the fresh ginger and fresh garlic, and cook for about 1 minute.
Add ground cumin, coriander, turmeric, cayenne, and salt, cooking for about 30 seconds.
Pour vegetable broth into the mixture all at once, and stir well to deglaze the pan.
Reduce the heat to medium-low, and add the tomatoes and the sugar.
Bring to a simmer, cooking for 20 minutes.
Remove the pan from the heat.
Puree the soup with an immersion blender. If you don't have an immersion blender, you can blend in batches in a regular blender.
Add coconut milk to the soup and return to heat.
Just before serving, stir in lime juice, top with a drizzle of coconut milk, and add salt and pepper to taste.