Bring water to a boil and add all ingredients (except the chiles and onions), including the whole fish, and simmer about 10-15 minutes until fish is cooked through. If you're not using a whole fish, sub fish or chicken broth for water and simply add the fish filets in step 4.
Taste and add more fish sauce, sugar, salt and/or lime, to taste.
Add whole chiles and simmer for about another 10 minutes.
Add white onion in the last few minutes.
Ladle soup into individual bowls and serve with a side of white jasmine rice.
Add garnishes of green onions, fried garlic, cilantro leaves, lime wedges and fish sauce, to taste.