Getting good photo's of fish is always a challenge. Even when you get everything technically right the fish don't know anything about posing!
Just a few thoughts about how I try to get reasonable results - I would be glad to hear any other suggestions.
A - Preparation
I give the glass a real good scrubbing to remove any algae etc, the day before seems best. I use a long handled device I bought at a fish shop specially for the purpose (saves reaching into the tank). I also hoover the bottom of the tank, and do a partial water change.
Outside of the glass I use a leather and then a cloth to dry it off. Best not to photograph straight after feeding - bits floating. I look for reflections (windows, lights, other tanks etc) and draw the curtains / switch them off if they affect the view.
B - Equipment.
I use an ordinary SLR (Canon EOS 5) or more recently my digi-camera a so-called 'digital-slr: Nikon coolpix 5700, 5 megapixels - a true digi-slr would probably be better for this purpose, there is a new Canon that costs much the same now and I think Nikon are launching something similar, there are other perfectly good ones too but the ones I've seen so far are more expensive.
A fairly good slr-type camera may not be absolutely essential, but it sure helps plenty. Even a cheap-ish second hand slr opens up a lot of possibilities.
Mostly I shoot at a lens value about 50-60 mm (35mm equivalent), but it varies.
Mostly I use a small flash on top of the camera, but also use larger flashes both on the camera, and held to the side on an extension lead. Also sometime placed above the tank, gives sort of a more 3d effect.
Key is to experiment what works for you, every camera, lens, flash and tank is different.
A polarising filter can help with reflections. Tends to mean you need twice the exposure though.
Sometimes the fish makes a difference too - angels are shiny, so shooting directly flat side on can wash them out.
C - Shooting.
I've tried a few ways. Angling the shot just enough to avoid picking up the flash (though with an image editor on a PC a bit of flash at the sides can just be cropped off.
Shooting straight but angling the flash on an extension (or holding it at one side with my 'free' hand).
Setting the camera up on a tripod and using an extension cord to trigger it.(so as not to disturb the fish if they are doing something interesting). In that case I just wait until the fish goes into the area I know it's focussed on then shoot.
D - Settings.
These always need experiment. When it's a tank of my own, that I'm likely to use frequently for photo' I run off a test film, recording the exact settings for each shot, to see what worked best.
Typically I start with 100 asa film, F8 with flash, then go up & down a stop. The written record really is important. Once you know what your set-up delivers you know where it's best to start next time.
Once you've got a digi-camera a film slr seems an awful lot of work and waiting, and when you've got the results on a photo or transparency they need scanning at a high definition and that takes quite some time.
With my digicamera, I can run off dozens of shots and view them in minutes on my PC, or directly on the camera's mini-screen. Then I have a go again at the settings, angle and distance that looked best.
A typical photo from my Nikon.

To look at a bigger version of the photo above click the thumbnail below.

For the full quality jpeg (~1mb) please click the thumbnail below.

With my camera I can also store tif & raw versions (8mb & upwards). Problem is it takes so long to store them I nearly fall asleep.
The advantage is that you can edit them with little or no quality loss.
I hope this helps
Alex