OK - the quickest way to do this is to do it in two batches; files and DB
I would zip/pack up your /blog folder just so that you have a backup in place.
I'll assume you're using cPanel.
Move all of your files and folders from /blog to /public_html/ using File Manager on cPanel.
You now need to change one file:
remove the /blog reference and save or if in doubt just delete it - WordPress will likely recreate it for you if you go into General > Permalinks and save the settings
Remove any references to site relocation that you may have implemented from the codex link posted above.
There are two ways of doing this. Lets try the simple approach first and see if it works for you.
1st make a backup from phpMyAdmin - export all tables and save as a SQL files on your local machine.
In phpMyAdmin, go to the wp_options table and browse the content.
On the first page you want to modify the siteurl option_name. It's usually the first entry in the wp_options table.
It will contain your site url along with the /blog/ reference. e.g. http://www.yoursite.com/blog/
Remove the /blog/ addition so it reads:
Go to page 2 of the wp_options table and find the home option_name. (should be around option_id 37)
Do the same as the above step by removing /blog/ from the url.
OK - check the front end of your site. This is the quick way. Check to see if your images load in and the sidebars are there.
If you have images missing etc then lets do the second method.
Make a copy of the sql file you downloaded earlier.
Open it up in a text editor and do a search and replace for:
Don't use a trailing slash on both search and replace fields.
Save the sql file.
Go into phpMyAdmin and drop all the tables.
Go to import and import the newly saved SQL file.
Check your front-end site - should be OK.
Now this method can make some of your widgets disappear from the site but they should be pretty easy to recreate.
If things go pear-shaped you can always restore back.
remove the wordpress files in the /public_html/ folder
unzip the zip in the blog folder
drop all tables in phpmyadmin
reimport the original sql file back in
I put together a slideshare for a WordPress meetup which contains most of this information:
It's about moving WordPress to another server but it mostly applies to moving from one folder to another too.
Let me know how you get on. Get in touch with me through the limecanvas.com website if you get stuck.