I am new to OSM and am exploring how I can add layers on top of OSM data to produce statistical maps that show things like average house prices, household income, etc. I assume this can be done, but do I need to use additional software and if so can someone suggest open software that I can use?
Depends on what type of data you have, if you can make your own maps you are of course free to use Openstreetmap as a base layer to display your data on top of. But if the data is connected to administrative regions you might not be able to find those regions in Openstreetmap.
There are lots of tools for this:
Geoserver, mapserver, QGIS, grass, Graphserver, lots of more I’m sure.