'보고 싶다' means "I want to see something or I miss you" but the object is limited to something visual. so, you can't write like "고향에서 먹었던 음식이 보고 싶다"
'그립다' but the object can be anything but only limited to past. so, you can write like "고향에서 먹었던 음식이 그립다" or "학생이었을 때가 그립다." but you can't write like "내일 개봉하는 영화가 그립다"