There is a method for resetting permissions in the MySQL manual. It deals with resetting the root password rather than recreating the root account, however I think you should be able to modify the method to re-insert the root account without any trouble.
Following the steps listed there (either method), if you change step 3 to insert a new account (fields might vary, this worked for my particular install):
INSERT INTO user VALUES('localhost','root',PASSWORD('some_pass'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
FLUSH PRIVILEGES;
You should be able to take it from there and get the permissions back up to snuff.