Heat the vegetable oil in a large pot over medium heat. Add the onion, garlic, and ginger, then cook for 3 to 4 minutes until the onion softens.
Stir in the sweet potatoes, cumin, cayenne pepper, salt, and black pepper. Cook for another 2 minutes to coat the potatoes with the spices.
Pour in the crushed tomatoes and vegetable broth. Bring the mixture to a boil, then reduce the heat and simmer for 15 to 20 minutes until the sweet potatoes are tender.
Remove the pot from the heat and stir in the peanut butter until it fully dissolves and the soup thickens evenly.
Return the pot to low heat and simmer for 5 more minutes, stirring occasionally. Adjust salt and pepper if needed.
Ladle the soup into bowls and top each serving with chopped roasted peanuts and fresh cilantro.