You may want to take a look at Martin Fowler's book "Patterns of Enterprise Application Architecture":

The online catalog of described patterns there can be found here: http://martinfowler.com/eaaCatalog/
The book pretty much describes all of the important patterns I've encountered so far. Beside that, IMHO in terms of architectural patterns, a programmer should know/understand about:
- Decoupling UI and domain logic through the several variations of the MVC patterns
- Application layeringApplication layering
- Data Access Layers - or through appropriate ORM mappers (i.e. Hibernate, Entity Framework)
- Dependency Injection and the Principle of Inversion of Control Containers (IoC)