Place nuts on a baking sheet. Bake at 350° for 15 minutes or until fragrant and browned, stirring once. Turn nuts out onto a towel. Roll up towel; rub off skins. Chop nuts.
While hazelnuts toast, heat olive oil in a Dutch oven over medium heat. Add onion and garlic; sauté 5 minutes or until golden. Add 3 cups broth, spinach, and salt; bring to a boil. Reduce heat, and simmer, uncovered, 10 minutes.
While soup simmers, combine chopped hazelnuts and remaining broth in a blender; process until very smooth. Add flour, and process until well blended. Add broth mixture to soup in pan, stirring with a whisk until blended. Simmer, uncovered, 5 minutes or until slightly thick, stirring occasionally. Remove from heat; stir in half-and-half, cheese, and pepper.
Place half of soup in blender; process until very smooth. Pour puréed soup into a bowl; repeat procedure with remaining half of soup. Return puréed soup to pan. Cook over medium heat 5 minutes or until thoroughly heated, stirring occasionally.