Some of my colleagues did just that back in the 80s/90s. They digitised the contour on paper maps using a digitising tablet, then preformed some rather complicated interpolation between contours to get elevation for every cells in their DTM. Now, if you have a digital map, eg as a picture, you can manually extract the contour information within a GIS. If you have digital contours eg as vector files, then you can start directly from these to interpolate elevation at cells between contours.
After. They had to digitise the contours first, then they performed the interpolation. It was at the time when ArcGIS and similar were less available so they had to program their own code. I suspect that nowadays you could do a similar job using the standard tools provided in ArcGIS or others (in ArcGIS that would be most likely in the Spatial Analyst extension). I would suggest to try on a small bit of your map first (big enough to gauge whether the procedure is reasonable before you commit to the full job.
If it is a topographic map you can try the ArcScan option of ESRI ArcGIS
"The ArcScan for ArcGIS extension enables you to perform automatic or interactive raster-to-vector data conversion with high precision and little or no operator intervention during the data capture stage." but you still will have to add the attributes to the lines by hand....
Digital Elevation Model (DEM), Digital Surface Model (DSM), Digital Terrain Model (DTM), Triangulated Irregular Network (TIN) can be derived or generated from contour map of a region.
Contour map of a region can be digitized from toposheet, or can be generated from spot heights of a region, or can be derived from DEM source data (like SRTM data, Cartosat DEM, etc.).
By using Topographical Analyses tools available in ArcGIS, Erdas Imagine, ENVI, etc. you can generate DTM from contour map.
If the map is physical then, yes, as suggested, you must digitise it by hand using some form of manual entry of the contours.
You then need to convert from x,y values to lat-long. To do this you must have some idea what map projection was used. You may need to solve for unknowns like scale and standard parallels.
If you do not know the map projection at all you will need to record some of the characteristics, such as distances between meridians of longitude and parallels of latitude, these can be used to identify which projection is most likely in use.
To do this you will need to record the coordinates of a number of reference points of known lat-long from the map. The relative positions of these points can then be used to solve for any unknown map projection parameters, and for rotation effects. I generally recommend that you use 9 or so points representing 3 longitudes and 3 latitudes. 3 is the minimum, representing two longitudes and two latitudes but that maximises the potential for error contamination. With a superfluity of points you can choose the combination that gives the minimum residuals in relative position for your reference locations.
The results here will not be perfect because of distortion effects in the printing of the map and errors in the manual digitisation process but these effects will in general be small. Don't stress too much about trying to get the residuals down to absolutely zero.
Knowing the rotation effects allows you to remove them. Knowing the map projection allows you to work out the formulae relating lat-long to x-y. An excellent reference in this regard is: Map Projections: A working Manual by Snyder
Once you know how to convert from x,y to lat-long you can apply your algorithm to the x,y,z triplets obtained by digitising the contours. You can then interpolate from the lat,long,z triplets onto a regularly spaced grid. I would recommend the GMT function nearneighbor for this purpose. Interpolation onto a regular grid is best done after conversion from x,y to lat,long.
If the map is digital then distortion and rotation effects may not be relevant making the process slightly simpler but essentially the same. There may be commercial packages that do this but the process is not that complex, and writing your own software allows greater flexibility in terms of what map projections you can handle.