Hi Mohit, the best time to visit Spiti is during the months of June to October, it gets extremely cold during rest of the year. If you want to experience extreme cold you can head during winter as well but there is always a risk of road getting blocked because of snow, so do keep couple of days in buffer if you are planning to go in winter.
The best time to visit Spiti valley is in the month of June... i have added a photo blog , so that you can have a look and decide. I completed the trip in 5 days starting from Chandigarh-Shimla-Rampur-Wangtu-Karcham-Khab-Nako-Tabo-Kaza-Losar-Kunzum La-Rohtang Pass-Manali-Kullu-Mandi-Chandigarh.
If you love snow then go anytime between October- January but in that case you will not be able to cover some points like chandratal.
If you want to cover every point then the best time is September.
Avoid going there in rainy season.
In the month of April to mid-May: At this time, the snow starts to melt. A number of roads are opened too like road from Kaza to Losar. However, road from Kunzum Pass towards Manali open only in the June month. This is the time when reaching Spiti is feasible and a number of adventure enthusiasts make their plans regarding tour to Spiti. This is an ideal time to admire snow-clad mountains and play in the snow. If you do not really mind low tourist count, can stay amid basic facilities and do not mind certain road blockages, you can travel at during these months.
During Winters ( November to March) It's extreme Snow that attracts, While in Summers it's melting Snow and waterstreams that attracts and In Monsoon its Hard to Drive yet Beautiful. Comfortable time is April to July and in September to October.