RPM actually has this fantastic feature to repackage an installed RPM. It works wonderfully well. You do however have to un-install or upgrade the package in question to be able to do this, however that is not really a big deal. I have even forced an un-install (even if it would otherwise break dependencies) and then simply reinstalled it again afterward. [Not recommended, but I have had it work in a pinch]
To repackage an installed package simply do:
rpm -e --repackage package_name
You will now find the .rpm of what you just un-installed in /var/spool/repackage and you can reinstall it again, and keep the .rpm. I love rpm.
This is great for when that particular version of that app you really need is nowhere to be found anymore.
For more info, see:
Transactions and Rollback with RPM
Manpage of rpmrebuild
Cheers,
Pete