"Genereally, he who occupies the field of battle first and awaits his enemy is at ease; he who comes later to the scene and rushes into the fight is weary." -Sun Tzu
 

Single Player:

Make a variety of levels... some extremely hard, and some only a little hard.. but never make a level that is too easy.

Use event difficulty variations! More weapons on easy, less monsters on easy, more on hard etc.

Don't squash a player in.. change back and forth from enclosed to out in the open.

Make puzzles for the player to solve... he doesn't want to run through the whole level.

Make destructable scenery... for some reason, people like to destroy things :)

Make lots of secrets, and secrets within secrets that are within secrets etc.
 

Multiplayer:

Make the level open.. let the player jump around some.

Never make dead-ends.

Don't make too many secrets.. 1 or 2 at the most.

Use springs... don't make the player always use the jump key :)

Don't put too many weapons in the level.. and only a couple powerups.

Don't make the weapons too scarce either.

To make a secret warp leading to a "walled room" with a powerup, if you don't want anyone to get that powerup with the Electro Blaster, use the 3-layer-wall trick. Here's how:
Make the wall 3 tiles thick; the outer tiles with richochet, and the middle tile a destructable block that can be killed by a certain weapon (anything other than weap 9). This makes it impossible to get through using weapon 9. If, for some reason, TNT still gets through: just don't use TNT in the level! :)
 

Make sure to read Cliffy's 10 level tips!