PetShop Sample is not best practice because of the overall initial architecture, not really by the use, which is done of llblgen.
The examples in the manual, in the Northwind samples and even in the PetShop sample (not ported to LLBLGen 2) give you good examples of local LLBLGen use.
Now the overall architecture of your system is up to you, really.
But say, if you build a standard DAL with LLBLGen, then abstract the db accesses in static controllers with some business logic and validation handling, and perform two ways binding from the entities and collections served by those controllers to a presentation layer, either web or winform, then this is simple, standard and good practice.
Of course you can add richer additional intermediate layers or satellite services, but then I don't think LLBLGen will bring you any specific guidance in those choices.
Just keep in mind that entities are being developped to be shared from the Presentation layer up to the datalayer, so appart from specific processing pipeline, you don't need to artificially wrap them into any other kind of business objects.