I still Create Extension methods of UrlHelper to generate your url from Route as per the Best Practices post by Kazi Manhur.
I'm curious to know if a better way emerged with MVC 2 and Areas (which I now use)?
So basically in your Html call a url helper extension which return a string anyhow that match an existing route. Something does not feel right about it.
What is the use of the id you (optionally) pass in when mapping a route? Can't one just call a route from an action link using that ID?