Ed,
In addition to Nak's & Herfried's comments I tend to use a combination of
both.
Some of my projects have multiple assemblies per layer, where there are
logical groupings within that layer. Also I tend to have one or two
'Framework' assemblies that are somewhat layer indifferent (they apply to
all layers or multiple layers).
The problem that tends to come into play is when two layers (in two
assemblies) both need to know about the other, which is where the Separated
Interface Pattern is handy.
http://www.martinfowler.com/eaaCatalog/separatedInterface.html
Hope this helps
Jay