Sorry, perhaps I should have elaborated further.
The code snippet below is pretty much ripped from the tutorials on the wiki. I test if the up, down, left and right keys are pressed in the 'if... else if' block and move the character appropriately. This works fine for movement where a single key is held down, so I'm trying to improve this further by adding the ability for the user to hold down multiple arrow keys at the same time to get diagonal movement.
At the moment I have a single 'else if' block to test if the user held down both the down and left arrow keys (the code I pasted in the OP). I don't think this test is working how I think it should, it seems that my test to check for whether both the keys are down is always false.
Does that make more sense?