Note - this description is based on my limited experience with QGIS. The version I used was 1.7.4 for Windows.
Download and install QGIS. Versions are available for Windows, Linux and Mac OSX.
Download/enable three Python plug-ins -- SimpleSVG, Shaded Relief and GdalTools.
GIS software works by reading data encoded with geographic information (e.g, longitude, latitude, elevation) and renders it as a map. Common file types that QGIS can read are:
DEM (Digital Elevation Model) - contains geo-referenced elevation data
GeoTIFF - contains geo-referenced elevation data (note - not all TIF files are geo-referenced)
KML - a mark-up language kind of like XML that stores vectors, is commonly used by Google Earth
SHP (Shapefile) - stores geo-referenced vectors, can be a very powerful format as SHP files are linked to database files with additional information on each vector (shape)
1. Obtain Elevaton / Bathymetry data (if desired)
Elevation data is usually found in DEM format, although it can be as a GeoTIFF in some cases. Good sites for elevation and bathymetry data are:
ETOPO1 - Elevation and bathymetry data good for maps covering large areas. GeoTIFF format. The image is downloadable as one (very large) tile so it can be difficult to manipulate in computers with smaller amounts of RAM.
SRTM - Elevation info only that covers 50 deg S to 60 deg N. There are a number resolutions:
SRTM1 - the best resolution, only available for the US
SRTM3 - data files are 1 deg latitude by 1 deg longitude and available for the entire world
SRTM30 - DEM files that cover large parts of the world. A good substitute if the ETOPO1 file is too big.
GeoBase - Elevation data in DEM format for Canada at 1:50,000 and 1:250,000 scales.