I do and it's fine even with >5k transactions a minute. You don't want to leave it running all the time and you want to capture only the items you need.
One thing you would want to do is run profiler from a different machine.
I typically have a monitoring server instance that runs profiler and stores the the information locally instead of the remote production db.
You can also do something really neat if you are using SSMS.
You can capture a profile through it (i believe it has to be to file), and then you can get perfmon results and merge them into a view that's pretty cool for tracking down problems.