The FAQ is your friend mate :
http://www.tomshardware.co.uk/forum/245454-15-crossfire-faqs
Do the cards have to be same model?
I answer it with an example:
You have a NVIDIA Geforce 7800GTX 256, and you want to add another card , the second card has to be 7800GTX exactly.
But what about the memory? Can you add a 7800GTX 512 and use that with 7800GTX 256?
It's recommended to use a 7800GTX 256 with a 7800GTX 256 and 7800GTX 512 with 7800GTX 512.
However you can use a 7800GTX 256 with 7800GTX 512 , BUT the 7800GTX 512 will lower its clock to operate with the 256 one , so it wont have its true power. (This option isn't recommended )
What about brands ?
Well the brand doesnt matter , again for example , you can use a XFX card with a EVGA card , or a SAPPHIRE card with a DIAMOND card , just make sure they have the same memory and same clocks.