One of the really cool LINQ tools out there is PredicateBuilder by Joseph Albahari. http://www.albahari.com/nutshell/predicatebuilder.html
His book is next on my reading list, but I am already using PredicateBuilder as part of my current project with is a dynamic query engine for a billing systm.
The only difficulty I am having is passing in column names dynamically. The consensus is that this can't be done, but that doesn't stop me from trying (or at least whining about it)