SQL Profiler can tell you that - e.g. just record SProc calls that are "slow". However, if you have SProc-A that execs SProc-B and SProc-C then SQL Profiler will only tell you that SProc-A was slow ... not which of SProc-B or SProc-C was the cause.
We have an EXEC at the start and end of EVERY Sproc that we write which logs the Start / End time of every SProc execution (and also the parameters provided to the SProc, and the User Session ID, so we can use that to figure out exactly what the user was trying to do at the time). We have reported that alert us, in real time, to any Sproc that starts to perform "slowly", compared to its normal run-time.