We implement it at the business logic layer between interactions with the presentation layer. If a request from the presentation layer comes in and it is cached we can then skip a whole lot of logic and data access.
I'd highly recommend MemCached over MS Velocity, Velocity was a pain to setup!