The Design of Everyday Things
As with any topic, get your hands on as many resources as possible.
My most recent addition to my pile of books is Designing Interfaces Patterns for Effective Interaction Design by Jenifer Tidwell. Links: Official website and Amazon.
I highly recommend it: it describes user interfaces in patterns (something that we are familiar with).
A few titles from my book shelf:
I could list more titles, however the above will get you started.
Possibly a bit Off-topic, however I cannot resist as this is an area that I know.
If you have the opportunity, talk with your users (or even better sit down with them as they work). It is the best research you can do when trying to improve usability of your software.
If you want to measure your usability check out running System Usability Scale test (commonly referred to as SUS scores). Link 1 and Link 2 (PDF)
Well, a long-standing favorite specifically for user interface design is Alan Cooper's About Face. It should touch most important topics when designing Windows desktop applications.
Then there are also various UX patterns which are well-presented in Quince (needs Silverlight).
Jef Raskin's The Humane Interface is also rather good, but very radical in his ideas. Still, this book points out many fallacies in modern UI design. If you need to stick to the WIMP world, then following his suggestions might be a little hard as he tends to suggest to overthrow everything we're used to. But well-written and good for provoking thoughts, even if you don't follow all his advice.
As for books/articles on usability in general or on slightly different topics:
grid systems http://ecx.images-amazon.com/images/I/51kcWOOyUoL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg
thinking with type
thinking with type http://ecx.images-amazon.com/images/I/51XtwgtqLDL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg
stop stealing sheep
elements of typographic style
the design of everyday things
the humane interface
It is not sufficient to make you an experienced designer, but it is a serious start towards thinking more critically about what makes a given design good or bad.
A resume, when design:
1. Use both knowledge in the world and in the head.
2. Simplify the structure of tasks.
3. Make things visible.
4. Get the mappings right.
5. Exploit the powers of constraints-Natural & Artificial.
6. Design for Error.
7. When all else fails, standardize.
There's a lot of books in the matter of UI but they can fall either in the philosophy side or either the personal taste of the writer.