Do it in stages: first get the students total score and highest personal score, and get the highest scorer:
SELECT TOP 1 SNAME, SUM(Marks) As Total, MAX(Marks) As Highest
FROM MyTable
GROUP BY SName
ORDER By Total DESC
That returns one student:
SName Total Highest
SURESH 291 98
Then JOIN that with the original table to get the subject as well:
SELECT s.SName, s.Total, a.Subject, s.Highest
FROM MyTable a
JOIN (SELECT TOP 1 SNAME, SUM(Marks) As Total, MAX(Marks) As Highest
FROM MyTable
GROUP BY SName
ORDER By Total DESC) s
ON s.SName = a.SName AND s.Highest = a.Marks
Result: one row, the info you need.
SName Total Subject Highest
SURESH 291 English 98
But...that is a very poor database design. You are storing the same info repeatedly, and should be using three tables: one for students, one for subjects, and one for results which uses foreign keys back to the others.