Federer's been completely off his game, yet has somehow still managed to win every single set but one so far this tournament. Nadal hasn't been awesome, but he's been solid.
I'm picking Federer. It's his time, and he clicked when he had to against Davydenko. Federer has a plan for Nadal, and he's been working on it for months. Federer in four sets.