I would also recommend "Designing with the Mind in mind" by Jeff Johnson.
Less generic that what has been listed in this article since it focuses more on user interfaces, it's a great overview of basic design principles, with clever illustrated examples.