For learning from scratch the best book used to be Fortran 90 Programming by Ellis, Philips and Lahey. Trouble is, it only goes to Fortran 90 and there have been some significant improvements to the language in the 95 and 03 standards, improvements which render some of the workarounds necessary in Fortran 90 obsolete. I quite liked the look of Introduction to Programming with Fortran by Chivers and Sleightholme, but I've not read it or tried (re-)learning Fortran from it.
To upgrade from 90 to 2003 the book by Metcalf, Reid and Cohen is excellent, but I don't think it is right for the absolute beginner. It's terse and is more about what new features the language has rather than how to apply them.
The Fortran 2003 Handbook is for the shelf, for reference when you need to get into the obscure corners of the language and the standard, but it's no tutorial.
Numerical Recipes is a good source of algorithms coded in Fortran and any half-way decent Fortran programmer should be familiar with the table of contents. It's not uniformly an excellent guide to programming in Fortran.
And pay no heed to the siren voices that tell you you have to come to modern Fortran through FORTRAN77. You don't, learn modern Fortran, learn old Fortran when, as you will if you work with Fortran for a while, you start to come across the old constructs.