yes you can run different brands of ram but you may well get stability issues especialy if your running an overclock...
you also have to take into account the mmu. if the timings are to different then the mmu will have to run the ram at a mix and match settings which stresses it...
for instance if 1 stick is 8-8-8-24 1600 and the other is 9-10-9-31 1600 the mmu will force all the ram to run at 9-9-9-27 (or what ever the mmu can match from the rams jdecs) and this can cause the mmu to heat up or even damage the ram with the higher latencies...
same as if you tried to run 1600 and 1333 ram the mmu will try to find a common jdec setting to run the ram at but it will force all the ram to run at 1333 regardless of other timings. again this can force the mmu to over heat, and may damage the ram. if the ram doesnt have a compatible jdec that they can all run at...(some boards will allow you to set each ram rank separately which should increase system stability even with mis matched ram)
so its always better to run the same speed ram from the same product line as you have more chance of getting ram that is of exactly the same timings and latencies.
also take into account that although you can stack all the ram sockets with fast ram(faster than 1333). some cpus will only allow 1 stick per channel so when you put 2 sticks of faster ram in the cpu may not recognize the second. either way you wouldnt be able to run a stable oc if your cpu limits the ram this way.