Answering to the main question: Both!
In my opinion, It's impossible to give an answer to that. They are different players, both have a lot of tournaments on their curriculum, and which one is the best on their own way.
On the head to head, Nadal has 18 wins against only 10 of Federer. But It's what It is, just numbers. For many people Federer is the best player of all times, I can't say If that is true or not because I never seen a lot of big players play, and even If I had seen everybody from all decades, I would probably had the same opinion that I have today. What I can say, and I think you all agree with me, is that he's currently the perfume of this sport. He isn't my favourite player, and a few years ago I hated him because he stoll several Grand Slam trophies to Andy Roddick :p , but well, let me be honest, I love to see him play.