It would help if you told us what error messages you've been getting. They should be stored in a log, in /var/log. Mine is Xorg.0.log, yours may be different. You can get the lines from that file that have errors in them by doing:
$ cat /var/log/Xorg.0.log | grep EE
and that will output all the lines that contain "EE" (or simply post the contents of the file). Knowing what distro you use is gonna help us as well.