This can be done with the Network Analyst Extension using either an OD Cost Matrix or Closest Facility:
In trying to decide between the two, ESRI offers this:
Tip:
The closest facility and OD cost matrix solvers perform very similar analyses; the main difference, however, is in the output and the computation speed. OD cost matrix generates results more quickly but cannot return the true shapes of routes or their driving directions. It is designed to quickly solve large M x N problems and, as a result, does not internally contain the information required to generate route shapes and driving directions. Alternatively, the closest facility solver returns routes and directions but performs the analysis more slowly than the OD cost matrix solver. If you need driving directions or true shapes of routes, use the closest facility solver; otherwise, use the OD cost matrix solver to reduce the computation time.
ArcGIS Desktop
Important Note on the example image, which can be confusing - the lines depicted in this image do not show the actual path calculated on the road network, but instead depict the directly connected locations for simplicity. The analysis does use the road network.
Source: ArcGIS Desktop
Here's some resources to help get started:
ArcGIS Desktop - Network Analyst Workflow
http://help.arcgis.com/en/arcgisdesktop/10.0/pdf/network-analyst-tutorial.pdf
General advice - realize that you may have to spend quite a bit of time acquiring and cleaning up the data before you can actually run the analysis. There are lots of streetline datasets out there, but most are not topologically correct to the extent that Network Analyst requires. It just takes one small gap between two lines which should be connected to throw an analysis. Oftentimes these gaps are very small, to the point where you can barely see them when zoomed way in. So a dataset which everyone else will look at and say is totally fine, as visually at a normal viewing scale it looks great - could be actually be riddled with gaps.
Chris Donohue, GISP