It depends on a lot of factors.
If you have the time and budget (and expertise) a native app for each platform is always going to be the best user experience.
If you are trying to do something that violates Apple App Store terms and conditions, A web app may be the only option.
Web apps are relatively easy to build cross platform, but you'll still need to do a lot of platform-specific tweaking to get it right for each device. It's not the easy option, believe me.
Do not kid yourself that a web app will ever offer the same high quality experience that a native app will do. A web app may be a worthwhile compromise, but it's a compromise nonetheless. A web app cannot access the filesystem, camera, photo library, contacts or calendar, and it doesn't have access to hardware accelerated 3D graphics (one day it will, via WebGL and some of the new HTML5 APIs, but I'm talking about what's possible now).
Web apps are still relatively uncommon so you'll miss out on exposure and "findability" of having your app in the App Store / Android Marketplace if you do go that route.
A better option might be something like Appcelerator Titanium that lets you create cross-platform native apps using JavaScript, without having to learn Objective-C or Java.
Or, if you're determined to use HTML, you should consider using a tool like PhoneGap that lets you package up web apps as native apps for each platform without needing to write any platform-specific code (the app is still a normal web site, but it runs locally on the device, not in a browser, and has access to native hardware functions and contacts, calendar, etc).
You should also look at 3rd party web toolkit libraries like jQuery Mobile or Sencha Touch to help make your mobile web app look and behave as much like a real native app as possible.