I have used Postsharp a few years ago to trace program flow during execution without needing to manually add trace statements to the method
If you only want this ability at debug time, there's Microsoft IntelliTrace that's a part of Visual Studio 2010 Ultimate, and there's Sergey Vlasov's RunTime Flow. The former makes your program run very slow. Haven't tried the latter.