Another really great book that also is available online for free is the DSP Guide. It goes all the way from sampling theory to designing filters with arbitrary frequency response (and tons of other stuff). It's also written in a very clear way with good examples including example code to understand the concepts.