Cut fish into 1-inch cubes and season with salt and pepper. Mix curry powder, water and 4 Tbsp. of the oil together to make a paste. Heat 2 Tbsp. oil over medium-high heat in a large high-sided skillet or Dutch oven. Add potatoes and carrots and cook for 20 min., stirring often, then transfer to a bowl. In the same pan over medium-high heat, add remaining 1 Tbsp. oil. Add onion and cook 3 to 4 min., stirring occasionally. Stir in curry paste and cooked potatoes and carrots. Cook 1 to 2 min, stirring. Lower heat to medium and stir in coconut milk, vegetable broth and soy sauce and heat through, 5 to 6 min. Stir in fish, tomatoes and peas. Adjust heat so sauce bubbles steadily but not rapidly. Cook another 10 min., stirring occasionally. Remove one piece of fish to check for doneness. When fish is cooked through, remove from heat and serve.
Serve over rice and garnish with fresh cilantro.