First find a reference image, usually you would get better result if you have 3 images (front, side and top pictures) but some times a single image will do the trick too.
![Image](http://temp.nowhere-else.org/fish/fish_1.png)
I rotated the image as you can see to have the fish somehow straight.
I then model a simple cube above it, and slice the cube where I will have to tweak the points to fit roughly the external shape:
![Image](http://temp.nowhere-else.org/fish/fish_2.png)
The next step is to move the points to follow the external shape of the fish. Don't model the fins yet as they have another thickness and therefore it would be better to make them as separated mesh initially.
![Image](http://temp.nowhere-else.org/fish/fish_3.png)
Once the rough shape is done, I split the model horizontally and further tweak the shape.
![Image](http://temp.nowhere-else.org/fish/fish_4.png)
Now let's switch to a 3D view and let's check how it look like:
![Image](http://temp.nowhere-else.org/fish/fish_5.png)
As you can see the shape is fare too cubic for a good fish, I therefore enable sub division surface which basically will smooth the shape, yet as you can see it's still far from being perfect.
![Image](http://temp.nowhere-else.org/fish/fish_6.png)
But don't worry, I first changed the tail part of the fish as the fish does usually have a thinner body near the tail than in the middle.
![Image](http://temp.nowhere-else.org/fish/fish_7.png)
After tweaking the shape from the top, I started to smooth it out with the help of a smooth tool as well as tweaking the points manually.
![Image](http://temp.nowhere-else.org/fish/fish_8.png)
It's now time to work on the fins, therefore I started to model each fin separately, again starting from a box:
![Image](http://temp.nowhere-else.org/fish/fish_9.png)
And adding as much vertex as needed and tweak them to match the shape.
![Image](http://temp.nowhere-else.org/fish/fish_10.png)
Again smooth it and tweak the top part of the fin to make it thinner on top.
![Image](http://temp.nowhere-else.org/fish/fish_11.png)
Added then the bottom fin with the same process
![Image](http://temp.nowhere-else.org/fish/fish_12.png)
Then the tail fin and the side fins which finish the fish
![Image](http://temp.nowhere-else.org/fish/fish_13.png)
Now, as I said before, a model without any texture will hardly look good (unless you go into loads of details). As we had a base picture, I took the super lazy road and applied the texture side wise
![Image](http://temp.nowhere-else.org/fish/fish_14.png)
It does certainly look better, but far from being perfect to make it perfect you should apply the texture with a proper UV, and avoid such texture stretching as we have on top and on the bottom of the fish.
To improve the look without any further work I made it so that the fins will be a bit transparent, simply based on the thickness of the model
![Image](http://temp.nowhere-else.org/fish/fish_15.png)
The texture is only used as color texture, therefore it lacks a bump map at least if not more. However depending on the size of your fish (distance from camera and overall size of your image) that may be good enough.