Spatialite could be interesting because it is fast for local use. You can load it directly into the RAM of your machine and it is only one file, so it is really portable and shareable. You can create R-tree indexes on geometry.
Just like PostGIS, Spatialite follows OGC standards and much of its functions are similar to PostGIS's and usable in SQL. It is also "[...]an alternative format to ESRI Shapefiles, which have several legacy issues (such as storage types and lengths of column names, etc.) " (PostGIS wiki).
The rasterlite plugin is also very performant to manage raster data using pyramids and image compression. (rasterlite official user manual)
PostGIS is also a good option, everything you need is there. It would be a better option if your data would be edited by many users simultanously or if you want to host large dataset such OSM. By the way, osm2pgsql is a reliable tool to import OSM data into PostGIS.
Advantages (among others) to use DB is that you can use SQL for queries and create spatial indexes. Futhermore, it is relatively easy to migrate layers between Spatialite, PostGIS and Shapefile format so you can easily use a mix of the three.
UPDATE 2019: I would prefer using GeoPackage over Spatialite for a standalone GIS SQLite database