American attorney/lawyer/counsel here. All of these words mean the same, although as Chris points out the word "attorney" is a little more specific since it means someone who is licensed to appear in court. I would also say, though, that this distinction is a bit unclear and practically speaking you are not usually calling yourself a "lawyer" in the U.S. either unless you are licensed to practice. I respectfully disagree with Charles on the meaning of the word "counsel" - I think it is a synonym with attorney and lawyer.
The reason that there are three words has to do with the history of English as a hybrid language, borrowing from Old English (Germanic), Norman French, and Latin. Since our system of common law started with the Norman invasion of England in 1066, judges and lawyers would often use three versions of the same word in legal situations. This tradition has continued to the present day, where we use the three words you mention here - lawyer (Old English), attorney (Norman French), and counsel (Latin). You see this in other legal documents too - e.g. "it is ordered, adjudged, and decreed..."
This is a good illustration of why English is so complex - it is actually several languages that fused over time into one.