A sitemap is simply an XML file. As pritaeas mentioned, there are various ways to create one. There are quite a bit of free online generators.
You can even create your own. I have an example of how to create a sitemap using an ASP.NET page. When the page is executed, the server-side scripting reads from the data source and builds the XML output. Feel free to use it, or if you are using a different server-side scripting language, adapt it to your needs.
If your site is made up of only HTML, the easiest way is to just use an online tool that will crawl your pages and provide you with the output.
After you have the XML file in hand, you can submit it to Google and Bing (Webmaster tools). You'll need to create an account with each of them. These accounts will allow you to logon and monitor the site and view statistics and problems reported by the crawlers.