I was having the same issue with the installer looping back to the first step right after I enter my database settings (but before actually creating/populating the DB). I looked at the code in InstallerController.php, and that gave me a clue: it redirects you to the welcome step if a certain session variable is false (or missing).
I checked my php.ini, and sure enough, my session.save_path was set to a non-existent folder! After I fixed that and restarted Apache, I was able to complete the installation wizard. (Now, how Moodle has been running on this box without incident for months without the ability to save sessions, I may never know.)
Server Configuration:
Windows Server 2003 R2 x64
Apache 2.2.22.0 (32-bit)
PHP 5.3.14 (32-bit, MSVC9 build)
PHP running as Apache 2.0 Handler (php5apache2_2.dll)
MS SQL Server 2008 R2 Express