Should form ‘Continue’ button be disabled if validation is incomplete?

In forms we often see the 'continue' button inactive until all the required fields are complete:

mockup

download bmml source – Wireframes created with Balsamiq Mockups

Is this actually a help to the user, or a hindrance?

I imagine the Pro for this is that it's a visual indicator to the user that they haven't finished filling in the form or dealing with errors (because even with inline validation a user won't be informed if they've never actually interacted with a field so won't show any errors for those at that point).

But then the main Con for this (which I've also seen borne out in usability testing) is that users will be confused why they can't click the button.

Is the pattern of disabling the Continue button until validation is complete actually providing a negative user experience?