<p>I'd like to find a way to determine how long each function in PHP, and each file in PHP is taking to run.  I've got an old legacy PHP application that I'm trying to find the "rough spots" in and so I'd like to locate which routines and pages are taking a very long time to load, objectively. </p>

<p>Are there any pre-made tools that allow for this, or am I stuck using microtime, and building my own profiling framework?</p>

take a look into
xdebug
, which allows in-depth profiling.  And
here's an explanation
of how to use xdebug.
Xdebug's Profiler is a powerful tool
  that gives you the ability to analyze
  your PHP code and determine
  bottlenecks or generally see which
  parts of your code are slow and could
  use a speed boost. The profiler in
  Xdebug 2 outputs profiling information
  in the form of a cachegrind compatible
  file.
Kudos to
SchizoDuckie
for
mentioning
Webgrind
.  This is the first I've heard of it.  Very useful (+1).
Otherwise, you can use
kcachegrind
on linux or its lesser derivative
wincachegrind
.  Both of those apps will read xdebug's profiler output files and summarize them for your viewing pleasure.