How can I determine which direction I'm facing?
Using cobblestone, there is an "L" shape in the block looking at it from the top. When the "L" is in the top left corner and right side up, then you are facing north.
Please refer to this awesome paint diagram.
Note: Once seen, can not be unseen.
Also works on netherrack.
In addition to what sjohnston said, clouds always move west.
Above ground, you can use the sun or moon to orient yourself. They both rise in the east and set in the west. Also, according to an answer here, you can punch the ground, and the pattern of cracks will always be oriented the same way relative to north.
Finally, there are third-party mapper programs that you can use to orient yourself (although I haven't used any and can't vouch for them). Some players might consider this cheating, or at least unsporting.