Heat oil in a soup pot over medium heat. Cook onion for 6 minutes, then stir in ginger, garlic and tomato paste for 1 minute.
Add sweet potatoes, diced tomatoes with their juices, broth, salt and cayenne. Bring to a simmer and cook partly covered for 18 to 22 minutes until sweet potatoes are tender.
Ladle 1 cup hot broth into a bowl and whisk in peanut butter until smooth. Stir this mixture back into the pot and simmer gently for 3 minutes, stirring along the bottom.
Fold in spinach and cook for 2 minutes until wilted. Remove from the heat, stir in lime juice and divide among 6 bowls.