I keep mine professional.
I just say something "I think I'd be a good candidate because of my experience doing x,y,z" I don't go into everything, just apply whatever applies to the specific job. I also list other interests of mine which might apply to the job. If the job says "Leading Edge Software." So I say I have experience in Leading Edge Software such as the latest Office, or tools which they use.
I then say that I'd like to make what salary I was getting at my previous job (asking for Salary amounts from a previous reference is illegal and most HR departments will not tell a new employee anything regarding that) but I pad it alittle so I can get a bit of a raise out of it, but mention you are willing to negotiate.
Then say in my final paragraph that I've included a copy of my resume which provides a detailed description of my education and employment history. I would welcome any opportunity to talk to you more or any other position which I may be qualified for. Don't hesitate to contact me at any time regarding this.
FYI, I've been hired by said company everytime I use a cover letter. If you just send a resume, they just get thrown on a pile because most HR departments don't know the lingo, the acronyms that you may use, but if you just use simple english and get to the point, they say "Hey this guy looks good" and forwards the resume to the appropriate manager/supervisor and it gets looked at which does know the lingo and acronyms.