I have two primary reasons to leaving my current company but I don't know how to clearly express them in an interview or cover letter.
Most projects I work on are very 'by the seat of your pants' with very poor organization and planning. Projects are always teetering on the verge of failure and it's a pretty stressful place to work- the problem is I don't know for a fact that places I'm applying are. I can do lots of research until I feel confident that the place I'm applying isn't going to have these problems but in the end I'm not sure it sounds appropriate- if someone asks, "why are you applying here" to say "from what I've read it sounds like projects are really organized at your company and that's something I'm looking for", since it is merely speculation.
Similarly but more subjectively, I enjoy working with people who care about the quality of their code, people who like to use SOLID when writing their code, people who unit test- in general, people who think about how they can improve their skills, what techniques or methodologies would be appropriate, improving re-usability, maintainability, and readability, and stuff like that. At my current company most people just write code "line-by-line" and don't think about things on this level- repeating the same mistakes over and over and in general being frustrating to work with (or for, in the case of the leads who are the same way). The problem I've found with this is that it is extremely hard to express in an interview especially with but not limited to non-technical people in a way that is clear and not really presumptuous sounding. And again, it is merely speculation that people at that company are any different.