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.