<p>What's a good method of programatically generating etag for web pages, and is this practice recommended? Some sites recommend turning etags off, others recommend producing them manually, and some recommend leaving the default settings active - what's the best way here?</p>

Well ETags make sense when you rely heavily on caching. They are a great indicator for the state of a resource (e.g. a URL).
For example, let's say you use an
ajax
request to pull the latest comments of a user and you want to know if there are any new comments. Changing the ETag to
alert
your application of new content is a less expensive way to check on that.
Because if the ETag is the same, you can keep your cache, but otherwise rebuild it.
ETags also make a lot of sense with RESTful APIs.
As for generating it, looking at the
spec
, I think you can do almost anything you want. A timestamp, a hash, whatever makes sense to you/your application.