Prepare in advance your sweet potatoes by peeling them and chopping them into chunks. Dice your carrots, celery and onion. Drain and quarter your tomatoes from the can.
Heat 2 tablespoons of peanut oil in a large Dutch oven or stockpot over medium-high heat. Add curry powder and cook, stirring constantly for 1 minute. Add onions, carrots and celery and cook, stirring occasionally, for 2 minutes. Add garlic and cook for 1 more minute. Stir in sweet potatoes, broth and tomatoes, and bring soup to a boil. Simmer, covered, 20 to 30 minutes.
Season with 1/2 teaspoon salt and 1/4 teaspoon black pepper, peanuts, cayenne, peanut butter, and coconut milk to the soup, stirring to combine. Bring mixture to a simmer and cook for 20 minutes.