Adding tooltip to an operator button

6 years later, and this is now a feature of blender 2.81.

From the docs:

With an operator defined as (irrelevant parts omitted):

class WM_OT_tooltip_test(bpy.types.Operator):
    arg: bpy.props.StringProperty()

    @classmethod
    def description(cls, context, properties):
        return "Arg is: " + properties.arg

The following button would have a tooltip that says “Arg is: FOO”.

layout.operator('wm.tooltip_test').arg = 'FOO'

This is mainly intended for cases when multiple similar but distinct operations are implemented for technical reasons as one operator with a mode switch parameter.