Hi Pawan,
At first it does seem a bit confusing. But there are differences. Per Rally documentation:
State
Indicates the rolled up state of all predecessors for this user story. If multiple predecessors are associated to the user story, the lowest State value of any predecessor is rolled up and displayed in this field.
Schedule State
Indicates the progress that has been made toward the completion of the user story.
They are generally set independtly of each other. A defect's state may go from Submitted --> Closed without the Schedule State changing at all. For instance QA submits the defect, development reviews and decides everything is working as expected and closes the defect (sets State to Closed).
Alternatively, after Defect was submitted, development may review and decide to move it to define it and create tasks(set Schedule State to Defined) and start working on it (set Schedule State of the first task to In Progress). After they complete the fix (Schedule State is set to Complete for last task), QA reviews and if satisfied they may mark the defect State to Fixed. Or it could be that Product Owner sets Schedcule State to Accepted and QA uses that information to verify the fix and mark as Fixed/Closed.
Hope this didn't add to the confusion. Short version is two states are rather independent and while 'State' tracks the Defect itself, 'Schedule State' tracks the work that the (Scrum) team is performing on the defect. The former is set by orginator and the latter is set by whoever is working on the fix.
Cheers,
Reza