For Introduction to Computational Fluid Dynamics, the book I would recommend is "Numerical Heat Transfer and Fluid Flow" by S. V. Patankar.
Most common Finite Volume codes used for incompressible flows are based on a method (SIMPLE) originally created/invented by the author, Patankar and this book has a from-the-horse's-mouth appeal and doesn't disappoint. The book is somewhat limited because everything builds up to explain the SIMPLE algorithm and the focus is narrow. However it does this very well. Another limitation is that it is short on work... (read more)