I have read a lot of books over the years which has given me a lot of knowledge and good practice on how to develop software.
Probably the most important book I've read has been Martin Fowler's Refactoring (http://www.martinfowler.com/books.html#refactoring)
As code exsits for a very long time after it is written it is really important that it as clear as possible and easy to follow. The list of 'Bad Smells' is of particular use and when you ever see them in your code or the code of others then they should be removed using Refactoring techniques setout in this book. This will reduce the overall cost of developing and maintaining software. I feel that people are sometimes too scared to change code for the better and I hope this book will give them confidence to do it when required.
The second book I would highly recommend reading is Steve McConnels's Code Complete.(http://cc2e.com/). This sets out everything that should be done around the technical solution to make a software project successful. This discussion of processes that should be followed has been one of the most valuable things I learnt before I started working on Enterprise scale projects. Any one involved in anything other than the most trivial software development should read this, even if you are a business person sponsoring a project as it highlights what can and does go wrong and how to do it right.
I have read a lot of other books and am particularly interested in agile development methodologies and how to make life simpler by using code generation tools but these topics are more technically specialized so will have to wait for another post.