I didn't even realize this was a debatable issue, learn something new everyday, I guess. I think the answer comes down to numbers. Stats are from wiki, so not the most accurate, but you get the idea.
Grant's victories:
Vicksburg: Grant-77000 men Confederates-33,000
Petersburg (if you call being stalled for nine months a victory): Grant-67000-125000, Confederates: 52,000
Even at Shiloh, Grant would have lost, had not Beauregard's troops not been to exhausted to finish him off.
Lee's Victories:
Seven Day's Battles: Lee: 92,000 Union: 102,000
Second Battle of Manassas (or Bull Run): Lee: 50000 Union: 62000
Chancellorsville: Lee: 61,000 Union: 134,000
Lee had less men, less supplies, less everything except command talent. Orson Scott Card even references this in Ender's Shadow, and says that Lee was brilliant. Grant simply knew that if he threw x number of men at the Confederates, no amount of tactical brilliance could save them.
Had Lee been in command of the Union, would the war have ended sooner? Of course. Why else did Lincoln want him? The war would have ended at the First Battle of Bull Run.
That said, yes, Lee made mistakes. At Gettysburg he positioned poorly and didn't really have a shot at it. Although I disagree that Meade was "third rate", but that's another matter.
Also, his first invasion. Lee fought Antietam to what really was more of a tactical draw; he simply didn't have the men nor supplies to fight on at that point. What is truly amazing is that he did that when McClellan had his battle plan in his hands.
As far as Grant, his campaigns weren't that remarkable given his resources.
And Sherman was just a douchebag. Seriously.