I almost always debug scripts by stepping through them. But sometimes it is nice to just have a way to write the current function during execution. I use this:
write-verbose "In function {0} " -f $MyInvocation.MyCommand
This uses the .NET formatting style, where the contents of the item after -f is placed as a string in {0}. Of course, you can substitute write-host for write-verbose.