ASP.NET MVC website describe pretty well the difference between the two. RenderPartial is used to display a reusable part of within the same controller and RenderAction render an action from any controller. They both render the Html and doesn’t provide a String for output.
Here is a picture that illustrate the difference between RenderPartial and RenderAction in Asp Mvc .Net.
This is a small example where the action Profile of the controller User could return directly a String. To be able to generate this output server side, it would require that the Profile action return ContentResult type that will be generated by Html.Partial or Html.Action.