Using a single worker method for properties
The update method only gets the reference to the ID-block who owns the property and the context passed. So you have to create a function for each property individually.

You can do this dynamically

import bpy

def callback(scene, prop):
    print("Property '%s' of %s updated to value %s" % (prop, scene.name, getattr(scene, prop)))

def create_update_func(prop):
    def update(self, context):
        callback(self, prop)
    return update

bpy.types.Scene.prop_a = bpy.props.BoolProperty(update=create_update_func("prop_a"))
bpy.types.Scene.prop_b = bpy.props.BoolProperty(update=create_update_func("prop_b"))
bpy.types.Scene.prop_c = bpy.props.BoolProperty(update=create_update_func("prop_c"))