I've got an XFX 5850, and I'd like to get another to do Crossfire. Does this second card need to be an XFX or is any 5850 fine? The Sapphires, for example, are much cheaper.
Yes, the cards can have different chips as long as they are the same generation and family. Specifically, the 5850 will work with any card starting with 58xx (and also with the 5970, which has two 58xx processors). It won't work with 57xx cards (different family), or with 68xx cards (different generations). It is not mandatory that the manufacturer is the same, you can have a sapphire and a XFX together.
The specific compatibility details are also available at this page. It isn't yet updated with the new 6xxx cards.
However note that mixing cards will result in slightly lower performance overall than having two of the same type:
One thing that shocked me was that the CrossFire gaming performance of a Radeon HD 5870 + 5850 was lower than that of a pair of Radeon HD 5850 video cards in CrossFire in all of our testing with the exception of one game. I would assume it is because the higher capacity card (the Radeon HD 5870) gets brought down to the lower one (the Raeon HD 5850) plus some overhead. This basically goes to show that while mixing and matching video cards to run CrossFire works for better performance it isn't the route to take for peak performance. If you want the most from a CrossFire configuration it is clear that you should pair two identical cards together.
Here is a list of CrossFireX certified graphics cards. http://sites.amd.com/us/game/products/certified/Pages/certified-graphics-cards.aspx