Diferença entre Url.RouteUrl () e Url.Action () no MVC3

Estou no processo de gerar um URL dinamicamente na minha página cshtml. Qual é a diferença entre Url.RouteUrl () e Url.Action ()?

Qual devo usar para gerar a URL e que diferença ambos têm em termos de implementação?

Desde já, obrigado