I thought I should write something about this topic specifically even though I have discussed it in some of my articles slightly.
I always use the following example to explain who a Business Analyst is, or what the Business Analysis means. If the software engineers/developers and Business Users are two sides of a river, Business Analysts are the bridge that connects these two ends. So, BA needs to know both languages to some extent, and at least if he doesn't, should be capable of adapting to.
In this bridge, Systems Analyst would fit into the end that’s closer to the software developers. SA needs to know the SW language very well, and the tools to communicate to them seamlessly; one good example is UML diagrammatic modelling.
However, the difference is very tiny and it’s a grey line between the two job areas. This is why we find SAs doing BA works and vice-versa and also some organizations opt to designate them as Business Systems Analysts. Most organizations have BAs but they do the full range of work.
Even though I don't want to use jargon here, but to highlight one good example, a SA would do a Systems Use Case model whereas a BA would do a Business Use Case model. It’s like the two sides of the same coin. The difference is SA is more close to the IT implementation side of it.
SA should be able to work closely with developers, helping them out with requirements, use the language that they are comfortable with, and involve in development oriented things such as screen designing, whereas a BA needs to work more closely with the business and try to talk in their language and also understand what the business requirements are, where the business should head and what should the systems offer to achieve those. In the event where there are no two groups such as SA and BA, whoever exists, either SA or BA or BSA, has to do all of the above or at least try to!
A logical career move for a developer (If someone ever wants to!) is to be a SA first and gradually move to be a BA. I personally had such a transition, at least designation-wise, but role-wise, I was mostly a BA.
If someone asks me, which one is the better one, I would say, that depends on the person! If you are a person who’s driven by being close to software development but like to have an overall picture, a SA role is for you because if you become a BA, you will be bored with not having any technical related thing to do. On the other hand, if you are someone who doesn't want to think of technical implementation side of it at all but concerned about business side predominantly, then a BA role is for you.