The main difference is who hired the power users. In self-serve product companies, like Facebook Ads Manager or Marin Software, you need to hire and train the power users: the people who are knowledgeable enough to operate the tools.
Agencies like Upgrow, use the self-serve tools and provides you with already trained power users.
The business model is different as well: SaaS products will charge you a license fee, while agencies will charge you an ad spend percentage (or per acquired customer.)
If you hire an agency, make sure they are using a good self-serve tool (or they’ve built a solid one.) If you use a self-serve tool, hire and train growth marketer, that can outperform any agency.