I have always thought about hosting sites on a local web server with MAMP or a web server application on a reliable and fast connection, but I was wondering if it would be better to just go with web hosting? Also how would web hosting or a web server handle a sudden surge in traffic in a huge scale?
Hosting on a local server requires a lot of knowledge of server administration and security, and generally you'll need more than regular residential internet service for it to work. You would need to check with your ISP to find out whether it is even allowable, as some block inbound port 80 or consider home servers to be a violation of their terms of service.
On a residential line, you need to obtain a dynamic DNS account since your server's IP will be changing all the time.
Unless you are very familiar with server administration and have a strong understanding of DNS, I would not recommend attempting to serve a website out of your house.
(Note: I successfully run a web server out of my house on a residential DSL line, but also work as a professional Linux administrator)