One of the players (either white or black, and possibly both--to my knowledge we don't know which) may have an advantage, in that there exists a strategy that s/he can follow to insure that s/he will not lose (i.e. either win or draw).

Proof:
I will represent the game of chess as a tree, as follows:
The root node of the tree represents the initial setup of the board, noone having moved.
Then, for a given node in the tree, link to it a node corresponding to each legal move one can make. Thus, the root node has 20 nodes linked to it--two for each of the eight pawns and two knights.
(Note here that for a given board position there may be several different nodes, since we could get to the same position different ways. The reason we allow this redundancy is because the legal moves at a given point in the game depend a little bit on the previous moves and not just the board position--for example, you can't castle if you've moved your king, even if it's back in its original spot)

The depth of a node is the number of moves it takes to get there from the root. So a single game of chess is just a path through the tree that always goes "deeper" into it. I'll call the nodes with even depth "white" nodes (because at those nodes it is white's turn to move), and those with odd depth "black" nodes (for a similar reason :). I'm also going to assume that this tree has finite depth (i.e. that no chess game will go on forever).

Alright, so here's what we do. Starting at the bottom of the tree (i.e. with the nodes with greatest depth), label each node either red, yellow, or green like so:

• If the node is white (white's turn to move):
-If white is checkmated, label the node red (this also means that there are no nodes below this one).
-If node represents a draw, label it yellow.
-If there are any green nodes below the current one, color this node green.
-If all the nodes below the current one are red, color this one red.
-Otherwise, (there is a mix of red and yellow below), color this node yellow.
• If the node is black (black's turn to move):
-If black is checkmated, label the node green (this also means that there are no nodes below this one).
-If the node represents a draw, label it yellow.
-If there are any red nodes below the current one, color this node red.
-If all the nodes below the current one are green, color this one green.
-Otherwise, (there is a mix of green and yellow below), color this node yellow.

Now, if you think about it, whenever white is on a green node, white can always pick a green node as his/her next move, and when black is on a green node s/he has no choice but to pick a green as his/her next move. Thus, once the game has hit a green node, as long as white doesn't screw up, the rest of the game will be on green nodes, thus ending in a win for white (the only ending green nodes are those where black is checkmated). Similarly, if the game hits a red node, black has a winning strategy. The slightly more ticky part is when the you hit a yellow node. In this case, no matter whose turn it is, one can always make a yellow move. Thus, when the game hits a yellow node, if neither player makes a mistake, the game will end up a draw.
So, if the root node is green, white has a winning strategy; if it is red, black has a winning strategy; and if it is yellow, both players can be sure not to lose. This actually applies to all two-player perfect information games (like checkers, tic-tac-toe, etc.).
Of course, this result, while interesting (to me anyhow), doesn't have much practical value (as gitm mentions below), since to make use of it one would have to in effect go through every possible chess game.

I would really appreciate feedback as to how coherent/understandable this writeup is. I really think this is cool as hell, so I will work on/rewrite this thing until it's good and understandable.