There is no size for the background image, because everybody has a different size monitor.
You can use a smaller image and tile it (either horizontally, vertically, or both) or you can use a large image and CSS to stretch it to fit most monitor sizes, although this latter method is not 100% reliable. I have use this code on non-WordPress sites with fairly good results:
background: #fff;
background-image: url("tropical_island.jpg");
background-repeat: repeat;
background-attachment: fixed;
background-size: 100% 100%, auto; /* Stretches background image to fill entire screen area */
-o-background-size: 100% 100%, auto; /* Stretches background image to fill entire screen area */
-moz-background-size: 100% 100%, auto; /* Stretches background image to fill entire screen area */
-webkit-background-size: 100% 100%, auto; /* Stretches background image to fill entire screen area */