Ancestry.com provides an extensive database of last names, their meanings and histories. FamilyEducation.com also has a genealogy section with a surname database, including countries of origin for names. Once you know your last names country of origin, check websites and books specific to that country for more details.
Many last names have changed spellings over the years by eliminating silent letters, shifting the pronunciation, or translating into a new language. If you are having trouble finding the meaning of your last name, try tweaking the spelling for example, changing Davies to Davis, or Johnston to Johnson. Some very common surnames, such as Jones or Jackson, may have dozens of variations and related names. These names have existed for so long that their origins may not be immediately obvious such as the surnames Dickinson and Pritchard, both derived, after many generations, from Richard.
For less common last names, narrow down the country or ethnicity of origin, and then check books and websites specific to that country or ethnicity. A book about South African names is likely to have more in-depth information on a South African surname than a general website on names. Public libraries are another good resource for local history and archival data that may include records of marriages, name changes and immigration.