I think the closest thing built-in in .Net 4.0 is ContinueWhenAll(). You can make the continuationAction a simple tasks => tasks and use the returned Task.
For performance reasons, you might want to use it with TaskContinuationOptions.ExecuteSynchronously.