Study the Software Development Life Cycle. This question was answered within the first two weeks of Software Engineering 101. Its a relevant question, and there is a definite but sometimes not so clear answer.
If you can imagine the analysts, designers, coders, project manager, other roles as a large Venn diagram, analysts and designers overlap considerably.
Analysts are usually the pioneers in a project. They take usually a set of basic requirements provided to them by project managers and stakeholders, to nail them down and go over things with a fine tooth comb to figure out what exactly the project is. More specifically what the non-functional requirements are.
Designers take this information gathering from the analysts to iron out a functional requirements, along with many others possibly (hopefully) including UML.
On a side note, analysts are usually paid more than programmers.