Welcome to the forums! Basically this is done via a language other than html. It is done with so called "server-side languages" which parse, or "populate" pages before they are sent to the browser. Some server-side languages are php, asp, and coldfusion. To use these languages you must have your website on a server that supports one of the languages. Most free web hosts do not support server-side languages while most paid hosts do. Personally I use php since I am hosted by dreamhost.
Once you have a server that supports php or one of the other languages, its time to build your system that will accept user contect. Building a system that accepts user information is usually a long process that takes months of security and bug testing. Instead of building their own systems many designers opt to use a free CMS (Content Management System) and then they just customize it to fit their website. There are many free CMS systems available but some of the most common are joomla, drupal, and wordpress. A google search of CMS systems will bring up many more options.
This is probably a ton of information so if you are looking for a place to start, decide on a language (again I recommend php) and learn the basics. Once you know the basics, install a CMS and customize it for your needs.
NOTE: Most CMS systems also use a database system called MySQL to store its data. Most paid webhosts also support this.