Databases get superceeded and vendors stop supporting old versions. UI's beccome out of date (it's very hard to support older version of ASP/ASP.net). There are new requirements for UI's these days with the advent of smart phones. If you need to replace either of these, you don't want to replace all the business logic. The business logic is the element that is likely to endure the longest (just think of 30 year old Cobol applications that are still running!). You may also at some point want to service orientate the application, and this will be easier if you can access the business logic directly.
Also, layering makes it much more maintainable and scalable, but also it makes it much more logically structured and readable. You know exactly where everthing needs to go, and when you come back to it, you know where it is. For example, I have worked on many 'forms over stored procedure' applications (This being a common alternative to an n-layered application) and I find the business logic strewn between the UI and the stored procedures. If there is a BLL, there is no excuse for it to be anywhere else other than the BLL (OK, except in very exceptional circumstances).
Also, I dispute the fact that an n-layered application really requires that much more effort to develop? I certainly think the development overhead is massively paid off by the maintainability.
Not all application warrant an n-layer architecture but I would imagine anything that took a year to develop would.