Seriously, there is no "best software". Everyone will simply recommend the software that they use. So here goes.
I use NotePad++, which is used by many, many professionals.
I tried Blue Griffon recently and thought it was good.
I tried Brackets, and thought it was good, but I did something wrong when I installed it and haven't had a chance to re-install and then read how it is supposed to be used.
It's much easier to list really bad software:
ANY software that says "no need to learn programming just drag and drop".
ANY software that is a word processor or desktop publisher with a Save As html feature.
Some people will tell you that dreamweaver is brilliant, others will tell you that it produces really bad code, but the bad code is produced by people who use dreamweaver but don't know anything about web design or code, so use it very, very wrongly.
You can use any program the wrong way and produce code.
No software can make up for a lack of knowledge and a lack of skill and imagination.
Depends on which technologies or languages you intend using. Also do you want to create markup from a design view (he shudders) or do you want to just code/write?
There are a number of good editors and IDEs out there -some of which have features such as code hinting, highlighting and completion. Some will highlight errors and have allow step through. Some may even have version control and/or FTP.
The IDE is one of the most important aspects of helping you design/develop efficiently, so it's worth trying out a number of different ones.
Bluefish, Aptana, Eclipse, Notepad++, Sublime2, Dreamweaver ... The list goes on and on. There' s no such thing as best.
It depends on what you mean to achieve. For simple, static-content sites, you're good with just a code/text editor like NotePad++ (I use that too), or Sublime Text, Textmate, ... anything with code highlighting, to improve readability, at least. They offer more bells and whistles than that, but for starters just get used to that.
All you'll need to write is HTML to mark up pages, CSS to style them, and JS if you want to control any client-side behavior (after the page has loaded). Past that, if you want to go dynamic, you should look into PHP, a server-side programming language built for web.
Hope I near sufficiently answered your question, although I can't guess what you mean exactly by "software"... that's a loaded term.
As others have indicated, the answer depends on you are developing. You had recently posted an asp.net related question so if you are developing in asp.net, your best bet, in my opinion, is to use Visual Studio. There are free and paid editions. For the most part, the free edition will include most of what you need, if not all of what you need for your web development.
Even though you may be developing asp.net, you can use visual studio for regular HTML as well.