This site is actually on a dedicated server. So basically, we are our own host.
It's just difficult to deal with shared environment because most of them host tons of other websites. When this site used to be on a shared environment, the server often goes down. And the admin always say the site use too much resources (just because the other sites are static html).

Shared Hosting will always try to get more accounts in one server to earn more profit. And for them, 1 very busy site is equal to 100 dormant site. So they will be loosing money from you if the server goes down all the time because of high traffic going to your site.
Also, any PHP site is an easy target for DDOS attack. If you use some Joomla components that is flawed, the attacker can target the component to bring down the server. Unless the admin knows how to block the attack, a flawed component will not be a problem. There are some mod for apache that can filter out requests with certain pattern so it won't get through the server.
The strategy is... go for shared hosting initially, like
http://www.MamboServe.com hosting, they've been awesome for a shared hosting. And when the site grows, maybe when it gets a million or so pageviews per month, move to semi-dedicated or better yet... dedicated server.
The only thing with dedicated server is, it's much more expensive ($150/mon avg. for a good package) and you need to be technical or get a managed server. Otherwise, you'll get DDOS'd often. Managed server means, a third party is taking care of your server administration.
When I first got the server, it often gets overloaded because of DDOS attackers. So far, it settled down after I implemented some security measures.