Patterns of Enterprise Application Architecture. Fowler, Martin, et. al., Addison-Wesley, 2003.
Specifically covers 3-tier design. Not just at a high-level architectural level, but down to implementation examples written in both C# and Java. The first 100 pages or so of the book is a tutorial on tier design concepts, which heavily cites the more detailed catalog of 40 or so patterns defined in the bulk of the remaining book.
Although some of the “patterns” defined in the catalog are inevitable specializations of the GOF patterns (that you may expect to see), many of the patterns are detailed treatments of implementation concepts that should be familar to developers working in various pieces of an N-tired web-based appplication. For example, the “Identity Field” object-relational structural pattern is simple: “Saves a database ID field in an object to maintain identity between an in-memory object and a database row.” But Fowler goes into issues that arise when getting a key, and the pros and cons of several solutions: auto-generated field, Oracle database counter, GUIDs, table scan, and key table.
This book is cited by many articles and books, including Professional ASP.Net Design Patterns.