The Nielson Norman Group article linked by FabioG in the comments covers the standard usability view: don't use reset buttons! There's nothing more annoying that filling out a form and then resetting it by mistake.
However, there is one case where a reset button is useful: if the form starts out with filled-in content, and the user changes it but then wants to go back. I'm talking about content from the webserver, e.g., common defaults or based on the user's history with the site, not browser auto-fill content. Another example is when you're editing a persistent form, such as user profile settings. The default "reset" behaviour in this case is not to delete the content, but to revert to the default or original value.
(This also covers Anindya Basu's suggestion in the comments of reset being useful to cancel out browser autocomplete, but there are other ways to handle that.)
<label> User id:
<input value="Your hard-to-remember id number"/>
Your long mailing address
That goes on for multiple lines
Maybe with a post code you'll need to look up...
<button class="main" type="submit">Submit</button>
<button class="minor cancel" type="button">Cancel</button>
<button class="minor" type="reset">Reset</button>
As the NNGroup page argues, you should always make form actions undo-able, but there are multiple ways to do so. If the form doesn't have default values, it is just as easy to erase entries by deleting the text or cancelling the entire page action, so a reset button doesn't add any value. Resetting a form to default/original values, however, is a distinct added functionality.
Finally, of course you should follow all other usability guidelines / standard layout to make the main action the obvious one and reduce the likelihood of resetting the form by mistake. In my sample form the main button is larger, coloured, and flush right while the other two buttons are small and flush left.