If you want to SLI another GeForce 9800GTX+ , it does not need to be the same brand, have the same clock speeds or even memory size it just has to be the same GPU. Note that an overclocked 9800GTX+ 1GB when paired with a stock speed 9800GTX+ 512MB will reduce its memory size to 512MB, and more often than not, will lower its clock speeds to match those of the stock 9800GTX+ (738MHz/1836MHz/1100MHz).
"Do the cards have to be same model?
For "Most" Nvidia cards the answer is yes,but there are some exceptions too like pairing a GTS 250 with a 9800GTX+,which can be done since the
GTS 250 is actually a re-badged 9800GTX+ but again there are some cards like 9800GT and 8800GT which have the same specifications but in general you can't pair them in SLI,some users have reported that by flashing a 8800GT's BIOS to a 9800GT's BIOS,you can do it,but its risky and not recommended.
I wrote about the cards which have different names but can be used in SLI mode in the "Model's section" down this post,other than those all other cards must be same model in order to run in SLI mode.
but about AMD/ATI models,for models like X1900 series and lower you have to use the same/master card to use CrossFire but for HD 2xxx series and up,check the compatibility chart on top of this post.
For other Nvidia cards,here is 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 RAM to 256MB to operate with the other card, 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.
What will happend if 2 cards have the same amount of memory but one has higher clocks than the other?
One of the best ways to learn is to make examples.
You have a 8800GT(Normal edition,no OverClocks) and you want to add another 8800GT(Which is OverClocked),then:
1_The OverClocked one will lower its clocks to reach the Non-OverClocked card.
2_You can OverClock your card(The one that has Stock frequencies) and reach the OverClocked card.
Remember, you cant ALWAYS OverClock the normal card to reach the other card,because it may not OverClock that much and may become unstable.
WARNING:There are many exceptions in Computer Hardware, for example "Mousemonkey" (a trusted member of this forum) has told me that when he puts his ASUS 7900GT card (Which is at stock speeds) with a XFX 7900GT(A OverClocked card) the ASUS one raise its clock to reach the XFX one which is an exception and as i said exceptions are alot in Computer Hardware."