As far as I understood, each miner can access a pool of pending transactions, select those that he likes, put them together in a block minding that they don't exceed the block's gas limit, and then tries to mine this block. Of course, the miner would pick those transactions with the highest transaction fees as it seems most profitable to mine them. This is the behavior implemented in the available geth/pygeth/cpp-ethereum implementations.
Now imagine the miner would only pick the transactions with the lowest fees and put them into a block. Would he not greatly reduce the overall competition in the network and end up more profitable due to the block rewards? If this was possible, a miner could even create low-fee transactions himself to guarantee there are always enough "unprofitable" transactions around. This would harm the network as the miner would get paid block rewards for verifying bogus transactions.
At the time of writing this, the gas price on ethstats.net is 146 gwei, so it is indeed a realistic scenario that 21-gwei-transactions are neglected by the majority of miners for a pretty long time.
Is this possible or what mechanisms prevent this? Is it possible to continue mining a block if another block in the network has been mined in the meantime, if they share no common transactions? If noone ever picked any of the transactions you chose, could you try mining your block for hours/days and then append it to the block chain? And would you even need to fill your block with bogus transactions until the gas limit for the block is reached, or could you also mine (almost) empty blocks? I suspect this is not possible since I assume that otherwise, this would have been exploited by now.