For the specific case of images, we have the polled camera ROS API (http://www.ros.org/wiki/polled_camera) that allows subscribers to request images individually. It's offered by the Prosilica camera driver, the main place we've actually needed it so far. Granted, this is not quite what you're asking for.
With that being said, my question remains:
Is it possible to filter the messages before they are actually sent?
And if so, where do I have to modify ros?