I’ve posted about this in the past, but it bears repeating. Joel Spolsky’s book User Interface Design for Programmers should be mandatory reading for any programmer who comes within half a mile of a user interface. Make that a mile.
Heck, anyone with a passing interest in user interfaces should also read the stuff. It’s freely available online, it’s well-written, and it’s useful. What more could anyone want?