I don't know about cost, it entirely depends on your requirements. You'd have to get estimates from companies.
Benefits for having it hosted in the other room: control. You have total management control. You know if you have it backed up, you can have physical access to the machine when something goes wrong, you can upgrade it, you have responsibility for it. You can put little baubles and stickers on the server and post pictures of it on geek sites for sysadmin day if you wanted, like a Boba Fett bobblehead.
Benefit to outsourcing: again, depends. Depending on your contracts and hosting company, the only real benefit you may get is that if your office burns to the ground or floods, your app will continue to work.
Some companies may do upgrades to the OS, or it may still be your job.
Some companies may do distributed deployment, so if someone accesses your app in NY and you're in California, the client will get it retrieved from a site more local and it'll be faster for them. Depends on your deployment needs.
Basically you need to make a list of competencies and deficiencies in your skillset, and decide if you can get them locally or if you need a hosting company to do it for you. Then decide how much it's worth to you, and whether it's worth downtime if/when your app fails. Backups? Electrical redundancy? Parts (if your server dies, can you bring it back up)? RAID and operating system maintenance? Antivirus/disaster planning?
Who's accessing it? Just your company? Or outside clients? If you host it and your Internet connection dies, everything's cut off. Does this app make your company money? Then you might want it on the distributed Amazon cloud, or you need the company to have redundant links with multiple providers.
Start with your list, then look at whether your company has the skills on site (or nearby with consultants) and resources to handle issues like dead connections, backups, disasters (tornado, flood, earthquake), and maintenance. Otherwise, look at the "hosted cloud". Then get a budget together for how much these things are worth to you/your company, and get prices from different companies. Compare how they stack up.
Or start out in the other room and migrate to a outside company later. Unless you get really entrenched, there's nothing stopping you from migrating later. I would say that I'd get it all virtualized though...that is one way to help with some migrations, in my opinion, making things as generic and separable as possible. Abstract the application enough that it will make it easier to dump to another machine later (whether it's an upgraded or new server in the business or a virtual server on the cloud). The less dependencies you have on the implementation of the server solution the better.