Hardcore web developers would always prefer to create and edit web pages using nothing but a plain text editor. To this end, Notepad.exe, TextEdit, or any other suitable editor would be fine. Designers, meanwhile, would prefer to use more sophisticated tools which can splice up graphics into different components, and can create a cascading style sheet or CSS file based on this.
If you're just a casual user, and you wish to publish a webpage, then probably you don't need to look into the more sophisticated web design applications. You would need something that works as simply as possible, without much need for technical knowledge.
WYSIWYG - This stands for "What You See Is What You Get." WSIWYG editors let you see an approximation of the end-product as you build your website. These programs mostly allow you to click, drag and drop elements from one place to another. It's almost like creating a simple PowerPoint presentation or Word document. These kinds of web design programs are meant for people who are not familiar with HTML and CSS. WYSIWYG programs like Microsoft FrontPage would usually save your webpage into HTML and CSS files, which you can just upload onto your web host. Once you've saved your HTML, you can upload these using an FTP program.
Text HTML Editors - More advanced users might appreciate the ability to get deep into a website's code, and for this purpose a text editor would be most appropriate. Editing HTML from the code can be quicker than trying to do the same edits with a WYSIWYG editor, especially if you're familiar with the HTML tags. One disadvantage here, though, is that you might make some mistakes in encoding, like forgetting to close HTML tags, which can problematic once you publish a webpage.
Not all text editors are made the same. Some are just plain text, which does not differentiate text from HTML tags. More advanced text editors would differentiate between the different types of tags by colors, and would even organize your HTML markup by hierarchies, based on opening and closing tags, which you can collapse and expand, depending on need.
Template based editors - With the popularity of free hosting by Google Pages, Yahoo, and even free blogging services, one can actually host a website with these services, and the design of the website will be taken care of the online service. This is done through themes and templates. You simply define the title and other characteristics of a site, choose a standard template, and you can start publishing. Since the content and layout of a site is separate, you can actually switch layouts and templates without having to re-encode your website's content.