All of these answers have valid potential issues, especially Leon's point that analog pins can be tricky and W5VR's point about MCLR not being pulled high. Also - depending on your chip, you may need to write to the LATB register for output and read from the PORTB register for input. Docs on the difference between LATB and PORTB are iffy and in the pst I've had to use some trial and error to make it work.
LATB is the port B output latch. This will contain the most recent values that you wrote into the latch. Under some conditions (say, your output pin is heavily loaded) the actual value on that pin may drop quite low. This can cause an erroneous reading of PORTB, i.e. it will return 0 when it should return 1. Thus, it's safer to read LATB because this will still contain the 'correct' value.
@kellenjb: You should be able to run the program without removing the ICSP cable, IF you use Debug mode in MPLAB. Otherwise, if you build the project as Release, you will have to pull the cable out. Debug mode may not be supported for OP's programmer; it works on my Pickit2.