Search services can dynamically populate data (for users to choose from) on the screen, at runtime. They only apply to updateable fields on the screen. Most often, search services fill picklists and tables with values that the user will choose from. They can also be used for fields that accept a single value or those that accept multiple values.
Search services are especially useful if the list of values to choose depends on other user choices on the same screen. For example, say you want two fields on the screen: one to pick a state and one to pick a city. In this case, when a user selects a state, the list of cities within the state can be dynamically populated by a search service.