Here's my analysis of the pros and cons of each. tl;dr: I would use a self-made one if I wanted more control and I would use one from a VPN provider if I wanted more anonymity and simplicity.
(+) You can either VPN into your home internet for free or through a VPS which you can use for something else e.g. web hosting or file storage.
(+) You have full control over how it is configured which will allow you to do things like work with a virtual LAN, assign static IPs within it, and forward multiple ports
(+) If your only enemies are a nosy person on the free wifi at McDonald's or some asshole in a video game who wants to ddos you, this can be good enough
(+) Your IP won't be on spam blacklists
(+/-) You typically have a static IP. This is good if you want to host a Minecraft server or avoid getting those annoying "new device" notifications from google and such but bad if you want more anonymity
(-) Your IP is tied to your payment information and real identity somehow which is a huge negative if your enemies include the government
(-) If you VPN into your home internet or a VPS you use for another purpose, that getting ddosed might suck
(-) Usually requires a little more technical skill to setup
(+) More anonymity, often including a dynamic IP and a privacy-oriented company
(+) Less setup required along with customer support
(+) IPs in different locations
(-) Your IPs are more likely to be on blacklists and as a result of having a dynamic IP you will also get security notices on places like gmail. Depending on the service and what your security settings are, you may have to go through 2 factor authentication more often.
(-) Less control
(-) You will have to share a network with people sketchier than you. They probably do take measures to avoid people doing any kind of snooping on others within the VPN but there is also the issue of the company potentially getting nailed for people committing major crimes.