There is no one good answer for the debate between on premise vs. managed and each of these options have sub-options to consider and decide on. The devil is in the details and in many cases a hybrid solution is required, using some functions (such as NAT traversal) from 3rd party hosted services while licensing (open source or commercial) other components of the solution.