This may change with the release of the iPhone OS 3.0, which will include parental controls; one thing many rejected apps have in common is that they run up against Apple's fairly puritanical decency standards (although apps that make farting noises or provide proxies for shaking babies apparently don't).
Although the block system hasn't been fully illustrated, it should let parents screen for particular kinds of apps and, in theory, prevent younger children from seeing Page 3 or other more controversial content in the future.
Apple provides plenty of technical guidance on building apps for the iPhone but doesn't provide any guidance about how it vets them once they've been submitted. Furthermore, the approval process is fairly slow, and developers who have their apps rejected have to go to the back of the line when they resubmit. Based on anecdotal evidence, it's fair to assume that apps with sexually explicit content or that could in some way be construed as competing with Apple will be rejected.
But the process is driving people crazy, as TechCrunch reports. "The number of times I get pinged about an iPhone app getting rejected is almost catching up to the number of times I get pinged for ones accepted. Obviously, it's a very small percentage that get rejected, but developers are getting increasingly annoyed -- and for good reason in some cases."
In addition to the relief that is promised with OS 3.0, though, is that another source of revenue is coming for iPhone app developers. A company called AdMob "helps monetize many iPhone applications by giving them the ability to embed advertisements," according to Om Malik.