What has ruined his legacy is that he's guilty in the eyes of the public of steroid use and many feel that his numbers are tainted. Say what you will about Hank Aaron, he weighed 185 in his playing days and still hit 755 homers. Babe Ruth may have been an asshole to people, but he was a fat ass (and steroids likely didn't exist in those years). Ruth and Aaron's records are considered clean. Bonds's isn't.
Personally, I don't like Bonds, but his impact on the game can't help but be felt.