First of all, you have to install the tactile helper from Extras-Devel (Git repository here). Then, you need to edit /usr/share/hildon-desktop/transitions.ini with a text editor as root and set the value of tactilepopups to 1 (i.e. change "tactilepopups = 0" to "tactilepopups = 1"). Save the file, and the changes should be applied instantly (if you have the latest version of the CSSU installed). Yes, I know that this forks a new process every time a feedback is played, but this keeps the architecture open for experimentation and prototyping of new ideas. It also didn't noticeably hurt my N900's battery life when used for a few days.
One further improvement would be to add support for "tactile" into Hildon, so that it vibrates when you press a button, but it doesn't vibrate if you touch a non-sensitive area of the UI (because right now, it vibrates on every touch when configured to do so, and that's not really tactile feedback of UI elements - you can "feel" the screen anyway, and it doesn't matter if the device registered your touch if the touch turned out to fall into a spot where no action will be carried out). I'm not sure if Qt Mobility's Feedback API already supports controlling the N900's vibra motor, but if not, there would be another great improvement opportunity.
The tactile helper can be easily integrated in other apps, the source should be trivial to understand, and easy to utilize in third party applications. It also comes with an example ('tactile-demo.py') that you can have a look at for a more elaborate example :)