application variables are stored at application level and also can be accessed at application-level.
but static varaiables are session-oriented and also can be access at session-level
Refer : http://www.dotnetheaven.com/UploadFile/mahesh/ApplicationState05102005051501AM/ApplicationState.aspx
ASP.NET includes application state primarily for compatibility with classic ASP so that it is easier to migrate existing applications to ASP.NET. It is recommended that you store data in static members of the application class instead of in the Application object. This increases performance because you can access a static variable faster than you can access an item in the Application dictionary.
The paragraph above is quoted from: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q312607.