I'm in agreement with Joe.
Even in an agile environment where you might break down a development/testing process into pieces or iterations/sprints you still need to have an understanding of what needs to be released. In fact knowing what has to be released is a pre-requisite for dividing up the work into smaller pieces.
We prefer to define the content in a release up front so we can communicate this to our clients who are eager to know what changes are coming. This doesnt normally lend itself well to releasing items adhoc but its still possible if a good feature branching approach is used.