Iam sure that with Crossfire you can use different makes of card but the more powerful card would be wasted because it would come down to the timings of your slowest card so that you would not get the performance from it.You cannot sli different cards tho.
If he has a 4850 then get another 4850, any brand will do. Maybe check the core clock speed and memory speed so they are the same. If you crossfire a 4890 with a 4850 then the 4890 will downclock to the speed that the 4850 is so you will have wasted the difference in price, so save your money and get another 4850.
4850 crossfire needs 550w's so a 600 or 650 from corsair, antec, seasonic or pc power & cooling.
Yes it's possible. Basically it would generally perform between two 4890s and two 4850s in CF. The 4890 will not down clock itself to match the 4850, or at least it shouldn't . There are a few instances where it may perform like two 4850s rather than between the 4890s and 4850s, but that's a scaling issue that seems to lessen with each driver release. There are also some quirks that arise with using two different cards in CF. Also, if the 4850 is a 512MB card then it is best to get a 4870 512MB. Spending extra money on a 1GB card would be wasted because the drivers would only treat the 4870/4890 as a 512MB card to match the frame buffer on the 4850.
As for the PSU, yeah get a good 600W or above unit.