Depends greatly on the needs.
I spent 2 summers working for a huge company (I'll refrain from saying which, as I don't want to say too much about my work. But if you live in the US, Canada or a few European countries, you've heard of them and may have even been a customer once, and no, it's not Wal-Mart, McDonalds or any other fast food restaurant). This past summer, I was a software engineer for the program that clients (several thousand worldwide) use to access our system and do stuff (yeah, real descriptive, I know
). And that was web-based, because new versions of it (every month was a new release) just had to be deployed to, I think it's 4, production web servers, as opposed to thousands of PCs at hundreds of client companies all around the world. There's no way to feasibly have it as a standalone app. Clients wouldn't update as often as they should or at all. So with a webapp, as long as they go to the proper URL, they have the latest version. We're not supporting 50 different releases at once because company X is on the latest, company Y is on the last release, and company Z hasn't upgraded in a year, yet they all need to use the app on a daily basis. Being a web app just makes it so much easier. Plus, you never know what sort of computers clients have. Although IE5 was the only official supported browser, there was no reason it wouldn't work in Firefox or Safari and the like. What if the standalone is Windows and a potentially huge client uses Mac or Linux? Too bad.
Web apps can be a bit easier to secure too, since all the end user gets is HTML/JS and images. If the executable is on their local machine, they can possibly do all sorts of crazy stuff with debuggers to do things they shouldn't be doing. Then again, poor web server configuration and lack of firewalls and such could be just as bad
Of course, standalone apps typically are more advanced and have better GUIs (although, you'd be surprised to see what another purely web-based, IE only webapp this company has for those 7,000 locations can do using Javascript and such. Most of it's probably due to the fact that IE fails to meet web standards, but whatever
). And, plus, depending on what sort of connectivity is needed, it may work without an internet connection in case someone is on the road.