Hi Graham,
Those are the two main options, yes. And as always with this kind of issue the answer is "it depends."
One of the things it depends on is who you ask. I favour baselines myself.
External version control systems are built to manage source code, where fundamentally each file is complete on its own. This isn't the case with XMI-exported UML models (which is what EA stores in a VC repository): model A may be dependent on model B to the point where A is incomplete without B. If you like, you can think of the EA GUI as showing a compiled view, rather than a source view.
EA's baseline functionality includes management of references. It's not perfect, but it's something.
The VC functionality on the other hand, doesn't handle references (last time I looked).
Baselines are the better choice when working in a single shared project, VC is more indicated if team members are working in individual projects (however, the addition of RAS baselines in 15.1 makes the individual project / baseline combination more viable). This view is somewhat controversial, and if Geert gets on here he'll tell you different.

The big disadvantage with baselines is that they provide no backup-type functionality. They are stored in the database and if you delete a package, you also delete all baselines taken of that package.
To this I say 1) no version control system is a backup system, if you're using it for that even slightly you're doing it wrong and it will all end in tears; and 2) I strongly suggest setting up a RAS project where you store your baselines. That way they are out of your working project.
Another really big disadvantage of baselines is that they provide no visual indication in the browser, as VC packages do. There is no workaround for this.
Finally, there is a third-party solution from LieberLieber in Germany (no affiliation) called LemonTree I think. I have no experience with that, but it was designed to address this problem.
HTH,
/Uffe