It really depends on who you are. If you're the tech geek (like 99% of the people on this forum) who likes to have the latest and greatest, then obviously you should wait for the latest and greatest (aka upcoming iPhone 5).
On the other hand, if you're a more practical person, the iPhone 4 is a really good choice. It's outselling any and every phone on the market. Even the latest and greatest Android 4G phone (Thunderbolt) is being beaten in terms of sales by the almost 1 year old iPhone 4. If you need a specific feature that is very/most likely to appear in iPhone 5 (need is not a want btw) then wait for iPhone 5. Otherwise, there's not much reason waiting for something that you don't need if the current generation of hardware satisfies your needs.
On the other hand, if you're a more practical person, the iPhone 4 is a really good choice. It's outselling any and every phone on the market. Even the latest and greatest Android 4G phone (Thunderbolt) is being beaten in terms of sales by the almost 1 year old iPhone 4. If you need a specific feature that is very/most likely to appear in iPhone 5 (need is not a want btw) then wait for iPhone 5. Otherwise, there's not much reason waiting for something that you don't need if the current generation of hardware satisfies your needs.