This is a Kenyan dish to be served over rice. The relatively authentic version depicted here has an interesting flavour, but is a bit bland. Consider departing from slavish authenticity and jazzing it up with some dried red pepper flakes, Tabasco sauce, and / or fresh cilantro leaves.
Peel and chop the onion, set aside.
Wash and chop the tomatoes, set aside.
Heat oil in a frying pan over medium heat, add the onion and sauté until translucent, about 5 minutes. Add the tomatoes, and let simmer until the liquid from the tomatoes cooks off a bit. Add all the remaining ingredients, bring back to a simmer, and allow to simmer for 10 minutes. It should be somewhat runny with a decent amount of sauce; if it seems too thick, add some water.
Instead of fresh tomatoes, you can use 2 cups (16 oz / 450g) of tinned diced tomatoes. Don't drain.
Instead of peanut butter, you can use the same quantity of ground or finely chopped peanuts, or try some peanut butter powder,