I have an elevation raster map of the world, in Lat/Long. When I make a slope map, the results of the raster cells will be either 0, or values close to 90. The problem seems to be that the Slope function does not understand the horizontal units (which is obviously degrees, but should be meters). How can I solve this? I am using ArcGIS.
You have to reproject the raster file to a metric coordinate system, e.g. Lambert azimuthal equal-area projection. As ArcGIS always uses the same units (degree or meters) for vertical and horizontal measures.
You can use the toolbox:
Data Management Tools -> Projections and Transformations -> Raster -> Project Raster