This question has been converted to Community Wiki and wiki locked
because it is an example of a question that seeks a list of answers
and appears to be popular enough to protect it from closure. It
should be treated as a special case and should not be viewed as the
type of question that is encouraged on this, or any Stack Exchange
site, but if you wish to contribute more content to it then feel free
to do so by editing this answer.
Follow-up with some other non-commercial web apps people have been developing:
The open software TerraView (http://www.dpi.inpe.br/terraview_eng/index.php) has a regionalization method called SKATER. It's description can be found here:
Assunção, Renato M., et al. "Efficient regionalization techniques for socio‐economic geographical units using minimum spanning trees." International Journal of Geographical Information Science 20.7 (2006): 797-811. Available at: http://www.dpi.inpe.br/gilberto/papers/assuncao_neves_camara_ijgis.pdf
The same method is also available in Python package
regionskate (pypi, github).
Python's PySAL library supports regionalization. It uses the max-p algorithm that does not force the user to specify a priori the number of regions (which is often the case in other methods).
David Martin's (University of Southampton) AZTool is another option. Software has a solid methodology behind it and I presume it can handle large datasets since it has been used:
... by the Office for National Statistics (ONS) to create the 2001 Census output geographies for England and Wales
NCRM has some online learning resources that cover the topic.