Season the fish pieces with salt and black pepper. Set aside.
In a large pot, heat the vegetable oil over medium heat.
Add the finely chopped onion and minced garlic, and sauté until the onion is soft and translucent.
Add the chopped fresh tomato, diced tomatoes, and tomato paste to the pot. Stir well to combine.
Cook for about 5 minutes, until the tomatoes begin to break down and the mixture becomes saucy.
Stir in the ground ginger, ground paprika, dried thyme, and ground chili pepper (if using).
Season with additional salt to taste.
Cook for another 2-3 minutes to allow the spices to blend with the tomatoes.
Pour in the water or fish broth, stirring to combine.
Bring the mixture to a boil, then reduce the heat to low and let it simmer for about 10 minutes.
Gently add the seasoned fish pieces to the pot, making sure they are submerged in the sauce.
Cover the pot and simmer for about 15-20 minutes, or until the fish is cooked through and tender.
Carefully remove the fish pieces from the pot and transfer them to a serving dish.
Spoon the tomato sauce over the fish.
Garnish with freshly chopped parsley or cilantro.
Enjoy your meal!