user2915: Here's a what-if scenario:
Person A has a Bitcoin address with 25BTC.
Person B opens up their Bitcoin client:

which may or may not have the complete blockchain (the latter would
mean no copies of Person A's transactions)

Person B presses "New Address", and Person A's address happens to somehow be generated. Now, the blockchain finishes synchronizing.
What happens? Is this a possibilty, sans the astonishing improbability? After all, random number generation can be influenced.

user4809: I suspect the simple answer is that Person B would be able to spend Person A's bitcoins, as he would show up in the ledger as owning them. Not dissimilar from simply giving someone your wallet.

user5757: A slight addition to the existing answers:
If B has not downloaded enough of the block chain to see A's transaction, then the situation will be as described above.  When blocks are downloaded by a wallet client, the transactions therein are checked to see whether any of them send coins to addresses held in this wallet.  If so, those coins are added to the wallet's balance.  So B will see an extra 25 BTC appear in his wallet.  As mentioned in the other answers, he'll be able to spend them as if they were his own.  So it's a race between A and B to see who spends them first - either can do it.
If B has already downloaded the relevant transactions before generating the colliding address, the situation is a little different.  As far as I know, most Bitcoin clients, when generating a fresh random address, will not rescan the block chain to see whether it contains any transactions sending coins to that address.  (As described above, the probability of this happening is infinitesimally small, so for all practical purposes, such a scan would just be a waste of time and resources.)  So although B now has a private key which can spend A's bitcoins, he will not be aware of it, unless/until he manually forces a block chain rescan (e.g. with Bitcoin Core's -rescan option), or checks his address balance using an online block explorer, or something of the kind.  
Of course, barring RNG faults, this question is sort of like asking "If all 50 US state governors were simultaneously struck by lightning, how would the stock market be affected?"  It's based on such an improbable assumption that it's kind of absurd to draw any conclusion.

user4805: This is the way I see it. The total number of bitcoins that will ever be mined is 21 million. The smallest bitcoin unit is a satoshi (0.00000001 BTC). If we place all possible satoshis into a wallet of their own, we would get the maximum number of wallets that could have any balance to them (so the actual number of wallets with bitcoins is obviously less). This is 21x10^6(BTC) x 10^8 (satoshi/BTC) = 21 x10^14 wallets. It's a huge number, but it's eclipsed by 2^256 possible wallets. So in this worst case scenario, the probability of guessing a wallet with one satoshi is 21x10^14/(2^256)=1.813595x10^-62. An incredibly small number.

user2785: If this happens, then Person B will be able to spend person A's bitcoins. However, there are only two ways this can happen:
a) Person B generates the same keypair (private key) as person A
or b) Person B generates a different keypair, which (public key) hashes to person A's address (a hash collision)
Take a look at the specification for at bitcoin address: https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

A Bitcoin address is a 160-bit hash of the public portion of a
  public/private ECDSA keypair

For "a" to happen, person B would need to break "secp256k1".
I am no expert on this field, but from what I can find on bitcointalk.org, then the "strength" of this is 2^128 bits. And if you're wondering how strong that is, then look for the video "Exhaustive search attacks" from Dan Boneh. 11 minutes in the video he says "anything that's bigger than 2^90 is considered sufficiently secure" (its about attacking 3DES, which is a symmetric block cipher so I'm not sure it actually apply to secp256k1, but I really have no better argument for why 2^128 is "so secure that you won't never, ever, ever generate the same key as someone else"
And for "b" to happen, you would need to find a collision on RIPEMD-160(SHA-256(pk)). As far as I know, then neither RIPEMD-160 nor SHA-256 is known to have any vulnerabilities to hash collision attacks. So somehow breaking both or randomly generation a key which hashes is exactly the same as another bitcoin address, is highly unlikely.
There is also a chance for you computer to catch on fire, and some of the materials to melt together into a lotto coupon with winning numbers on (and a valid barcode), but it just won't happen because of the chance is so unbelievably small (it's the same with the "click and generate another persons bitcoin address").
EDIT Woops, one important thing: This all assumes that all bitcoin addresses are properly generated using "true random". All brain-addresses and addresses generated using a bad PRG, might be easy to find by either using a flaw in the PRG or exploit the (flaws in the) human brain.

2915: <p>Here's a what-if scenario:</p>

<p>Person A has a Bitcoin address with 25BTC.
Person B opens up their Bitcoin client:</p>

<ul>
<li>which may or may not have the complete blockchain (the latter would
mean no copies of Person A's transactions)</li>
</ul>

<p>Person B presses "New Address", and Person A's address happens to somehow be generated. Now, the blockchain finishes synchronizing.</p>

<p>What happens? Is this a possibilty, sans the astonishing improbability? After all, random number generation can be influenced.</p>
 4809: <p>I suspect the simple answer is that Person B would be able to spend Person A's bitcoins, as he would show up in the ledger as owning them. Not dissimilar from simply giving someone your wallet.</p>
 5757: <p>A slight addition to the existing answers:</p>

<p>If B has not downloaded enough of the block chain to see A's transaction, then the situation will be as described above.  When blocks are downloaded by a wallet client, the transactions therein are checked to see whether any of them send coins to addresses held in this wallet.  If so, those coins are added to the wallet's balance.  So B will see an extra 25 BTC appear in his wallet.  As mentioned in the other answers, he'll be able to spend them as if they were his own.  So it's a race between A and B to see who spends them first - either can do it.</p>

<p>If B has already downloaded the relevant transactions before generating the colliding address, the situation is a little different.  As far as I know, most Bitcoin clients, when generating a fresh random address, will not rescan the block chain to see whether it contains any transactions sending coins to that address.  (As described above, the probability of this happening is infinitesimally small, so for all practical purposes, such a scan would just be a waste of time and resources.)  So although B now has a private key which can spend A's bitcoins, he will not be aware of it, unless/until he manually forces a block chain rescan (e.g. with Bitcoin Core's <code>-rescan</code> option), or checks his address balance using an online block explorer, or something of the kind.  </p>

<p>Of course, barring RNG faults, this question is sort of like asking "If all 50 US state governors were simultaneously struck by lightning, how would the stock market be affected?"  It's based on such an improbable assumption that it's kind of absurd to draw any conclusion.</p>
 4805: <p>This is the way I see it. The total number of bitcoins that will ever be mined is 21 million. The smallest bitcoin unit is a satoshi (0.00000001 BTC). If we place all possible satoshis into a wallet of their own, we would get the maximum number of wallets that could have any balance to them (so the actual number of wallets with bitcoins is obviously less). This is 21x10^6(BTC) x 10^8 (satoshi/BTC) = 21 x10^14 wallets. It's a huge number, but it's eclipsed by 2^256 possible wallets. So in this worst case scenario, the probability of guessing a wallet with one satoshi is 21x10^14/(2^256)=1.813595x10^-62. An incredibly small number.</p>
 2785: <p>If this happens, then Person B will be able to spend person A's bitcoins. However, there are only two ways this can happen:</p>

<p>a) Person B generates the same keypair (private key) as person A</p>

<p>or b) Person B generates a different keypair, which (public key) hashes to person A's address (a hash collision)</p>

<p>Take a look at the specification for at bitcoin address: <a href="https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses">https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses</a></p>

<blockquote>
  <p>A Bitcoin address is a 160-bit hash of the public portion of a
  public/private ECDSA keypair</p>
</blockquote>

<p>For "a" to happen, person B would need to break "secp256k1".
I am no expert on this field, but from what I can find on <a href="https://bitcointalk.org/index.php?topic=92423.msg1048511#msg1048511">bitcointalk.org</a>, then the "strength" of this is 2^128 bits. And if you're wondering how strong that is, then look for the video "Exhaustive search attacks" from <a href="https://www.coursera.org/course/crypto">Dan Boneh</a>. 11 minutes in the video he says "<em>anything that's bigger than 2^90 is considered sufficiently secure</em>" (its about attacking 3DES, which is a symmetric block cipher so I'm not sure it actually apply to secp256k1, but I really have no better argument for why 2^128 is "<em>so secure that you won't never, ever, ever generate the same key as someone else</em>"</p>

<p>And for "b" to happen, you would need to find a collision on RIPEMD-160(SHA-256(pk)). As far as I know, then neither RIPEMD-160 nor SHA-256 is known to have any vulnerabilities to hash collision attacks. So somehow breaking both or randomly generation a key which hashes is exactly the same as another bitcoin address, is highly unlikely.</p>

<p>There is also a chance for you computer to catch on fire, and some of the materials to melt together into a lotto coupon with winning numbers on (and a valid barcode), but it just won't happen because of the chance is so unbelievably small (it's the same with the "<em>click and generate another persons bitcoin address</em>").</p>

<p>EDIT Woops, one important thing: This all assumes that all bitcoin addresses are properly generated using "true random". All <em>brain-addresses</em> and addresses generated using a bad PRG, might be easy to find by either using a flaw in the PRG or exploit the (flaws in the) human brain.</p>
