if you want to communication between PC & uC then the baud rate is fixed as 9600 for PC.
if you want to communication between 2 uC, you set baud rate variable when the both baud rate are same it'll communicate. it won't communicate with other baud rate.
Dinesh, nearly all 8051 communication is using "variable" baud rate mode 1 and 3, e.g. all PC communication. Variable baud rate means that the baud rate is programmed by a timer, popular baud rates like 9600 can be only implemented this way. You'll most likely chose mode 1 (for standard 8,N,1 frame). Mode 3 can be used to emulate parity or two stop bits.
this variable baud rate can also be used to communicate between the devices with unknown baud rate. by using this first we can know the baud of other device and next set device baud to that rate and then communicate. it would be crazy and fun when i use this function to communicate with arm processor i gives funny results at higher baud rates as 8051 or atmega32 does not support much in higher frequencies.