Hello,
those two cannot be compared because each describe different thing. Also be aware that Tier is not the same as Layer.
Tier - process boundary. When you build 3 tiers application you know that UI, BL and DB will be in 3 different processes which can be on three different machines.
Layer - logical boundary. Single tier can contain multiple layers. It is just the way you build your application to follow OO principles.
SOA - SOA application can be multi-tier and multi-layer but generally it doesn't have to. SOA is an approach to architect the application in meaning of reusable autonomous interoperable remotely called components. SOA services have to follow four tenets.
To show simple difference between N-Tier and SOA lets assume that you are building service layer on the top of business logic which uses some database. It looks like you are building N-Tier SOA application, doesn't it? Unfortunatelly not every application exposing services follows those tenets. Probably the most critical in this case are "Explicit service boundary" and "Services are autonomous". If your services share some business logic functionality or data in database they don't have explicit boundary and they are not autonomous => the application is not designed as SOA.
There is also difference between small SOA and large SOA. Mentioned application is small SOA - each service has to follow tenets. Large SOA is for enterprise integration where you count application with all its services as single unit which has to follow tenets.
Best regards,
Ladislav