First, from a technical perspective you should be asking the difference between Web Applications and Client Applications. Within each category, you can ask about the difference between standard Web Applications and Mobile Web Apps and standard Client Apps and Mobile Client Apps.
The difference between web and client applications is that web applications lack state: every page request is completely de-linked from every other page request. It is only through various technical work-arounds that web applications manage to maintain the illusion that a web app user is running a coherent application as they navigate from page to page. In ASP.NET, for example, the ASP.NET ISAPI DLL manages a "Session" object that pulls a session cookie from the user's page request and then provides uses it to identify the Session data appropriate for the handling of the request.
In a client application, by contrast, every aspect of the application is targeted at a single user and the "state" of the application is a given as you navigate from dialog to dialog. In addition, the tight integration of the application with the user's computer permits the use of on-board resources (memory, disk). In a web app, by contrast, there is little or no access to these resources except as mediated by the browser (which is a client application, not a web app).
Mobile web applications are, essentially, just web applications with two caveats: the screen size is considerably smaller and the browser capabilities are generally less robust. Thus, you'd write a mobile web app in pretty much the same way as a standard web app but you can not count on some of the capabilities that you usually have with a full-blown browser. This last constraint, by the way, is rapidly going away as mobile devices become more powerful.
Mobile client applications require a development environment, deployment strategy, etc. that is specific to the mobile device. The tools and techniques used in standard client application development don't map particularly well to the Mobile client. Instead, you'll need to learn new tools, controls and techniques. The only real exception to this rule are the tools available through .NET. Microsoft has attempted to provide as much commonality as possible although, even here, you'll find that you have a different mind set and different constraints than when developing a WinForms application.
Hope this helps!