I've gotten extended batteries from Ebay and Amazon. From what I understand, there are different batteries for different SII models (19100, i777) and networks (Spring, AT&T, etc.). If you decide to buy non-OEM batteries, make sure you read the ad carefully to make sure they are for your model SII.
Typically, non-OEM batteries, especially the extended batteries (higher mAh), can't be charged with your phone charger, although they can be charged with the AC charger you may have gotten with your phone. However, non-OEM batteries usually include an AC charger and they are normally much cheaper than the stock Samsung battery.
You can get a little higher mAh battery than the stock SII battery that will fit in your phone and work well. You can also get a much higher mAh, but it is a thicker battery that requires a new back plate (usually included with thicker battery).
I've had good luck with non-OEM higher mAh batteries in my Samsung (Precedent, not SII). My experience is comparable with other posts on this forum concerning various other Samsung model phones.
I have 2 non-OEM higher mAh batteries that don't need a new back plate. Thus, I can have one battery in the phone, one spare in my pocket, and the other spare is in the charger.
If I purchased a much higher mAh and thicker battery, I probably would not need to carry the spare. But, I didn't think I would like the feel of a thicker phone. It's a personal preference and other users don't mind a little thicker phone.
One more thing. I could not charge the non-OEM batteries in my phone. However, I was pleasantly surprised that I could charge them in the phone after I rooted it. Don't know if that will work for other Samsung phones, but that feature alone made it worth while to do the root thing.