How can you tell when a roast is done?
Trying to predict when a roast is done based on time is a very poor method.  Many factors can change how long a particular roast takes to cook to your preference, including:


Size and shape of the roast--generally the thickest dimension primarily affects how long it takes
Initial temperature of the roast
What temperature you cook it at
The doneness you are aiming for (most important for beef or lamb)


Furthermore, there are two types of cooking commonly called roasts:  pot roasts, which are a more properly a braised dish, and regular roasts.   Finally, while not always called roasting, some oven cooked meats which are cooked for a very long time at low temperatures are in fact more similar in their chemistry to braising than to higher temperature roasting.

Short Answer

For braised dishes and low-and-slow barbecue type roasting, you can tell when the cooking is done because the meat is fall-off-the-bone tender.

For all other roasts, the best way to know it is done is to take the internal temperature with a probe or instant read thermometer.

The time guideline in recipes is to help you plan your cooking day logistics, and so that you know approximately how long to wait before checking for doneness.  As in all but a few forms of cooking, the recipe times are not the final arbiter.

Pot Roasts and Braising

Pot roasts are cooked with liquid in the roasting pan, typically coming up about 1/3 to 1/2 the height of the meat.   This is actually a type of braising, despite sometimes being called a roast dish, and is suitable for tougher cuts of meat like beef chuck, turkey thighs, or leg of lamb. 

This is a moist cooking method intended to bring the temperature up high enough, long enough to convert the tough connective tissue to succulent gelatin.

These dishes are always well done.   You know they are finished when the meat comes off the bone easily, and (when appropriate) shreds with little effort.

These dishes often braise for 45-60 minutes for dark meat poultry, or for 2-3 hours (or even more) for pork, beef, lamb, goat, and so on.

Low and Slow Roasting

Low and slow roasting, done with oven temperatures of approximately 250-300 F (120-150 C) on tougher meats--typically pork shoulder, beef chuck, brisket, and so on--has the same purpose as braising:  it slowly converts the collagen to gelatin to create an unctuous dish.  The difference is this roasting is done dry, not in liquid.

The test for doneness is also the same:  when the meat comes off the bone easily, and shreds with little effort.  The internal temperature will be at least about 180 F (82 C) and as high as 205 F (96 C)  but this is not the primary indicator in low-and-slow.

The time to roast is very sensitive to the thickness of the cut, and the temperature at which the roasting is done.  The roasting times can be very long, as the heat transfer is not as effective as with braising, up to 12 hours and even more depending on the item. 

Regular Roasting

The remainder of this answer will concentrate on regular, high temperature roasting (as opposed to low-and-slow).  In general the temperature will be at least 300 F (150 C), but usually 350 F (180 C) or higher.

In regular roasting, there may be a searing period of very high heat at the beginning or end of the roasting period to help brown and crisp the exterior of the cut.

The main indicator for when meat is done roasting is temperature.   This is because the highest temperature achieved in the meat indicates how well it is cooked.

How to Measure

To measure the temperature of the roast, use an instant read or probe type thermometer in the thickest part of the meat.  Try to aim the probe for the center, without touching bone.

For larger roasts, you want to aim for a measured temperature about 5 degrees F (about 2-3 degrees C) below your final target temperature.  This is because the outside of the meat will be much hotter than the inside, and as the roast sits, the temperature will even out, raising the temperature at the center--this is called "carry over cooking."

Some tips:


Take the temperature in several places, and use the lowest one as your result
Leave the thermometer in until the result stops changing--depending on the quality and type of thermometer you have, this could take from 2-10 seconds or so.


What Temperature should I look for?

The temperature you are looking for depends on the type of meat you are cooking.

Red Meat

Red meat, including beef and lamb, can be roasted to different donenesses depending on how you prefer it.

125 F    49 C    Rare
130 F    55 C    Medium-rare
140 F    60 C    Medium
155 F    68 C    Medium-well
165 F    74 C    Very well done


Poultry

Most people expect most poultry to be thoroughly cooked (with the exception of duck breasts).   

White meat should be cooked to about 155 F (68 C).  Dark meat should be cooked, depending on your preference to at least 160 F (71 C) to as high as 180 F (82 C).  It is far more resistant to overcooking than is white meat.

Note that duck breast is very unique among common types of poultry, in that it is a very heavily worked slow-twitch muscle:  it is in fact, dark meat.  Many people prefer it cooked medium rare or so.   You can use the beef temperature chart above for duck breast.

Pork

Historically, especially in the US, pork has been cooked extremely well done because it was very fatty (which helps it seem moist), and to ensure it was cooked enough to prevent any food-born illness.

With leaner pork on the market, and far, far less risk of food born illness, it is becoming common to roast pork to lower temperatures.

It is safe after about 150 F (65 C), but many people find it more to their preference roasted to 155 or 160 F (68-72 C).

For more information, see:


What makes a moist steak (or roast)?