If you are looking for a book on Shaders specifically, look closely before you buy. You want a book which covers/focuses on DirectX 8 shaders (I forget the exact version numbers of the pixel/vertex shaders). I know ShaderX (the first one) is valid for the most part, however ShaderX² is more focused on DirectX 9 shaders and HLSL language. Also, look out for anything which covers the Cg. While it is possible to convert these to work, and the theory is useful - that are not directly compatible.
Anywho - you can find a lot of good info over at GameDev.net on shaders, also you have a lot of info on MSDN.