I have used Postsharp a few years ago to trace program flow during execution without needing to manually add trace statements to the method
Gibraltar uses PostSharp, but provides you with a very powerful client for visualizing your program flow. You can also compare snapshots, view statistics, etc.. Unfortunately it's not free :)
Moreover, most dependency injection frameworks (Unity, Windsor, Ninject, ...) provide method interception. In most cases, you can define traced methods within the app.config file. However, I prefer PostSharp :)