However, some software is not available as rpm - and I don't believe that the end user should be responsible for creating an rpm themselves.
It's relatively straightforward to create a spec file for simple applications that packages a source tarball. A simple spec file is little more than a meta-script that does the configure/make/makeinstall, and has some header info for the RPM DB that any app should have anyway (like name, summary, description, URL). Look at how easy it is to make an RPM from the SpamAssassin tarball. (Instructions are on the SA download page. It's a one-liner.)