You normally need to pay for any decent web hosting, though free alternatives I'm sure are available -- I wouldn't know where to look though, as I just tend to buy whole servers these days. lol.
You can get decent webhosting which is suitable for most low traffic website needs from places like JustHost (I used them years ago when I was starting out -- they have excellent customer service, and are very helpful.
Do a Google search for web hosting to find alternatives.
What sort of website are you looking to build? e.g. what is the purpose of the website?
Your intended usage dictates the solution you require, and these obviously range from simple to highly complex. If your after a personal website and don't want to mess with hand coding (or WYSIWYG editors), something like WordPress could be ideal and is easily installed as long as the hosting package has the required dependencies to run it.
P.S. Cpanel access and Fantastico or Softiclious is highly recommended with a hosting package, so make sure any deals include them.