PSI-BLAST takes a single sequence query and searches a large sequence database (>200 million sequences). It builds a multiple alignment from your sequences, converts it into a profile, and iterates through that process. Assuming that PSI-BLAST finds more than one match for your sequence, this process can be summed up as comparing a single profile (an alignment, if you will) against a large number of individual protein sequences.
RPS-BLAST is the opposite of that. It has a pre-made database of profiles (alignments), and searches your single sequence against it. It is many orders of magnitude faster because there are less than 100 thousand profiles. While RPS-BLAST is faster, it will give you something only if the matching profile for your sequence already exists in the database, or if it can be detected with statistical significance. PSI-BLAST is slower, but generally more sensitive because it builds a
position-specific (PS) profile based exactly on your query.
In a nutshell: PSI-BLAST searches a single alignment against a database of many individual sequences, while RPS-BLAST searches a single sequence against a database of many individual alignments. The former is slower but more sensitive, while the latter is faster but may not yield all (or any) matches.