That depends heavily on your company's skills and where you live. Colo is Much cheaper than good (read: useful) managed hosting, but you have to either have the money for a staff of 3+ local sysadmins so that someone can always be on call, or have the skills to admin the boxes and swap hardware yourself and a backup person if you ever want to go on vacation.
I'm assuming that you're in a position where you can't tolerate a few hours of downtime in the middle of the night if something breaks.
I feel like for most companies with a tech staff smaller than about 8-10, you're probably going to have all programmers/DBAs who may have some server skills, but not the competencies to go chase down complex hardware issues at 2am. Past a certain size real sysadmins will have plenty of work do the 99.99% of the time when you're not down, so it's natural to switch over to a colo situation.
There are also tax and accounting pro/cons to buying the hardware.
If you have more than one or two servers, you don't necessarily need to have someone turn up at the colo at 2am. Like with The Cloud, the physical servers just become a resource to be managed. If the discount for colo is enough, for the price of N cloud servers you can have, say, N+2 in a colo (maybe even N x 2). Then you don't have to worry about fixing anything that breaks right away, since you've got some spares that you can fix at your leisure.
That's definitely true, although I'd still be worried about system problems further up the chain. (Load balancers, firewalls, etc). Hopefully even with managed hosting you're still not at the mercy of any one hardware/software failure.
Part of it just boils down to risk tolerance I think, and how comfy you are with sysadmin skills.
I'm responsible a medium sized (< 10 servers) web site that use managed hosting for. Their advice/service is invaluable to me, partially because I trust them enough that I can just hire web programmers without worrying about their advanced linux/networking skills being super high. The host has also helped us debug some fairly deep problems that we don't have a chance at in-house like hypervisor config issues, and even a processor 'errata', AKA processor hardware bug.
It's also nice to have an ops team to ping questions off of, since we're not nearly large enough to hire a dedicated sysadmin otherwise (and they'd be without sysadmin work 50% of the time anyway).
NB: I'm treating 'sysadmin' like it's just one skill set to administer routers and server hardware, configure firewalls and networking, optimize database boxes, etc. This is probably not totally true, but fits for purposes of discussion. YMMV.
I'd love to see a similar study to the Google study[1] done on power supplies. Intuitively, one would think there might be some events/environmental causes for PSU failure (like poor cooling, power spikes) -- so that the likelihood that two servers drop dead at the same time are higher than it would be if the outages were random. Now, "same time" could of course be a few hours, or even days -- giving you time to get a replacement up, before all your database servers are down.
I'm assuming that you're in a position where you can't tolerate a few hours of downtime in the middle of the night if something breaks.
I feel like for most companies with a tech staff smaller than about 8-10, you're probably going to have all programmers/DBAs who may have some server skills, but not the competencies to go chase down complex hardware issues at 2am. Past a certain size real sysadmins will have plenty of work do the 99.99% of the time when you're not down, so it's natural to switch over to a colo situation.
There are also tax and accounting pro/cons to buying the hardware.