These days, to me "cover letter" means what's in the body of the email, and the resume is attached, ideally as a PDF. I prefer "cover letters" that are short (one paragraph) and don't read like it was copy-pasted. Honestly, I've grown tired of reading that a person is a "hard worker" or a "great problem solver", stuff like that... just tell me why you find the company interesting enough to ask for a job there, to put 40+ hours per week of your life into indefinitely. Perhaps this doesn't work for emails that are going to an HR person or destined for a database but I know this is what I look for personally, as a software engineer interested in hiring quality software engineers.
Also, the resume should be concrete about experience. I don't like reading about what your team did, instead talk about what you did. I don't like reading that a project that "made stuff better", I want to know by how much exactly. I don't like reading projects that sound like they were accomplished with magic fairy dust, I like to see specific tools, techniques, programming languages, and so on. My resume in fact used to be more generic, but the feedback I got on it from my friends made it a lot better (they were also former coworkers so they knew some of the stuff and even remembered some projects I'd worked on that I had forgotten). I said what I did, what tools I used, what goals I hit personally.
I would like to briefly add to this excellent point. It is very valuable to highlight a time when you have actually built something (include a link to the project if possible). Demonstrate that you will be able to deliver software, not just think about it (as the case may be).
It completely depends on who you're sending it to whether Word is an acceptable format, but PDFs are pretty much universally okay. If your Word doc is forwarded to someone who uses OpenOffice, your formatting may get all messed up. They might not have the right fonts, etc. PDFs are the safest choice.
Also, the resume should be concrete about experience. I don't like reading about what your team did, instead talk about what you did. I don't like reading that a project that "made stuff better", I want to know by how much exactly. I don't like reading projects that sound like they were accomplished with magic fairy dust, I like to see specific tools, techniques, programming languages, and so on. My resume in fact used to be more generic, but the feedback I got on it from my friends made it a lot better (they were also former coworkers so they knew some of the stuff and even remembered some projects I'd worked on that I had forgotten). I said what I did, what tools I used, what goals I hit personally.