The var keyword was invented in order to support dynamic types, not to replace the declaration of every local variable.
The reason I dislike it is because I believe it promotes laziness and needlessly obfuscates the code. The difference between
var request = new WebClient(); and WebClient request = new WebClient(); is negligable, so why not declare it properly?
Take these examples:
var provider = providerFactory.Create();
var customer = base.CreateCustomer();
As a developer seeing this code for the first time, what type is provider/customer? The only way of knowing is by looking up the declaration of Create/CreateCustomer. For the sake of a few keystrokes, you have made the code considerably harder to maintain.
Additionally, the general argument for var seems to be that the compiler and VS intellisense will inferring the type for you, but that doesn't help me if I am viewing it outside devenv (eg. comparing two versions of a source file in subversion).