Having done both, hopefully I can be of some insight for you.
When we first started out, everything was rented - at that point places like RackShack and ServerBeach were the places we rented through. As time progressed, and businesses changed, we utilized a local datacenter to house our own equipment. When we first jumped into our own environment we had 15 servers - the downside being we had the front the money for all 15 servers & the cage fees initially, but over time, we made that money back.
Fast forward 2 years, and we're at just over 80 servers at a co-location down the road from us. The good side of things is that our bandwidth didn't go up much, the rates remained the same for the cage, and we were making money to buy the additional servers outright.
Go forward another year - hardware is now cheaper than dirt to buy, and the hardware we had was quickly being outdated. This lead to a forced buy of new hardware - another outlay of money, or go back to renting.
Part of the decision process was staffing at the facility. We had enough staff running our support and billing services, and we were fine for admins, but everyone was remote except for 2 people that were within 30 minutes of the datacenter. This was an issue, as if both people left on vacation, there's nothing that anyone remotely could do. Factor in hardware changes, bad memory, etc etc and the decision was made to go back to renting machines.
Now we rent in about a half dozen datacenters, all with 30 minute or less on SLA's (some with 15 minute hardware replacement SLA). We have hundreds of servers and VPS machines to manage, and everything is done remotely.
Does it cost more? Sure it does - a lot more - but not having to fret about who can get to the center to change out memory, or major hardware failures etc, it's worth the cost.
When you start to become the big fish in the pond, you can get some better rates at the datacenters too - so that's always a good thing.
If I had it do over, I'd never have bothered with Co-location. We would have continued to rent, and put the money away for a rainy day.