How can I tell when fish is cooked enough, but not overcooked?
For many years, there was a "10-minute rule" that said for every inch of thickness, fish should be cooked ten minutes. I've cooked a lot of fish, and I would estimate that rule applies only about half the time. The type of fish you're cooking and the cooking method greatly affect cooking time.
I check for doneness when the fish looks like it is no longer translucent, when it feels somewhat more firm when I press the top center with my fingertip, and/or when it has cooked the equivalent of about 8 minutes per inch, if I can't tell at all from the first two. (That happens, for example, when I bake fish smothered in tomatoes, onions, and olives: I can't really see the fish well, and the other ingredients affect the surface color of the fish).
Many older fish recipes will tell you to cook the fish until it flakes: by that time, the fish may start to dry out. The ultimate check for doneness is to peek into the center of the thickest part of the fish. To do this and not serve fish with a big gash mark in the center, slide a butter knife straight down through one of the existing seams in the flesh (those little parallel lines that run through the fish). Gently pry the flesh back and determine if the fish has just lost its translucency. You should see lots of moisture, but the fish will be nearly opaque. If you see just the tiniest bit of translucency in the center, take it off the heat—by the time you serve it, the fish will be cooked through.